GraphiteEditor / GraphiteEditor/Graphite

Canvases with spherical and non-euclidean coordinate spaces

オープン
#2,010 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
Architecture
主要言語
Rust
スター
27.2k
フォーク
1.3k
平均マージ
20時間 5分
マージ済み PR(30日)
57

説明

A spherical canvas could represent a photo sphere, or maps of the Earth or other planet surfaces, or the stars around the earth. Unlike the standard Euclidean infinite canvas, this would have finite area but retain infinite zoom depth. Useful nodes could, for example:
- Provide base maps for GIS data such as satellite/aerial imagery
- Digital elevation maps
- OpenStreetMap layers
- Import custom survey datasets and lat/long/(elevation?) tracks
- Generate star charts from star databases
- Plot tracks for satellites, planets, comets, etc. from their ephemera
- Visualize KML files
- Construct conformal maps and Escherian artwork, see [this 3B1B video](https://www.youtube.com/watch?v=ldxFjLJ3rVY)

Things you could do:
- Make videos with motion graphics incorporating city street/transit layouts or city/country/continent-scale boundaries
- Annotating maps or overlaying CAD site plans on a map
- Visualize sea level rise or flooding
- Process LiDAR or other survey datasets with image processing techniques
- Generate celestial body tracks over star charts
- Animate a planetarium show (and render its different projector views)
- Use tools to paint, draw, and animate over photo spheres and 360° videos
- Load accelerometer data to stabilize and reorient the spherical canvas
- Render out tiny planet projections
- Design skyboxes for games/animations

Besides spherical coordinates, other non-Euclidean canvas coordinate systems could be used, such as a finite tiling rectangle or hex cell. Drawing off one edge would result in drawing on the opposite edge. This would be more sophisticated than an infinite tiling node because the actual coordinate space would wrap, not just the content being generated infinitely. Other variants of wrapping could include a ping-ponging coordinate space or a Möbius strip (see [this video](https://youtu.be/v5ev-RAg7Xs?t=297)).

![Image](https://github.com/user-attachments/assets/a960e839-5c0d-46a5-9f50-ee4a7b305f5d)

See https://en.wikipedia.org/wiki/Template:Orthogonal_coordinate_systems and https://en.wikipedia.org/wiki/Orthogonal_coordinates

This all somewhat relates to #1271 which will involve moving beyond affine transforms.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

ファイル、テスト、エントリポイントは指定されていません。まず関連する issue #1271 と、リンクされている座標系のリファレンスを確認し、その後、既存の canvas と transform のアーキテクチャを特定してください。完了には、球面またはその他の非ユークリッド座標空間に対応する、合意済みの設計と実装が必要です。提案されている wrapping のバリエーションも含みます。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
computer-graphics
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。