rerun-io / rerun

Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
https://rerun.io/
Apache License 2.0
6.26k stars 292 forks source link

Add support for planes and rays #2179

Open roym899 opened 1 year ago

roym899 commented 1 year ago

Is your feature request related to a problem? Please describe. Sometimes it could be useful to log a 3D plane or lines that extend to infinity. A closely related feature would be primitives that extend to infinity only in some directions (e.g., rays). An example would be to visualize the epipolar plane of two images.

Describe the solution you'd like Either separate functions such as log.plane / log.ray / log.line. Support for np.inf (or similar) for existing functions might be reasonable in some cases (e.g. width and height for rectangles).

Describe alternatives you've considered Simply logging a very long line behaves reasonably well already, but isn't as nice. Logging a plane seems only possible indirectly through log_rect + log_rigid3 right now.

Additional context Some loosely related issues: #1361, #1531

emilk commented 1 year ago

Logging planes and rays seems reasonable. Infinite lines could be supported with Plücker Coordinates, though I have a hard time comping up with an example for that

roym899 commented 1 year ago

I agree, there don't seem to be too many use cases for lines, but, for example, a grid or axes could be constructed with those or the intersection of two planes could be highlighted.