-
Notifications
You must be signed in to change notification settings - Fork 106
Description
Is your feature request related to a problem? Please describe.
Following on from #25, it has been raised that it would be useful if we could create renders of our generated meshes. It's currently possible to visualise the meshes using Plotly, but those visualisations lack realistic materials and lighting, which can be important aspects in the research space and for images to put in publications.
Describe the solution you'd like
At minimum:
- An example of how to take an exported mesh from FullControl, and render it with freely available software
Ideally:
- Photo-realistic image rendering
- Customisable materials and lighting
- Transparent materials could be important for some applications
- Customisable camera positioning, with automatically determined reasonable defaults
- Generable from within a FullControl workflow
- e.g. being able to set up a render with a Python function, rather than needing to manually configure it in some other software
- Simple interface by default, with customising available but optional
- Renderer package-able with FullControl (e.g. installable automatically using pip, as an optional project dependency)
- Option to generate animated renders
- Predominantly for cycling through multiple views
- In future possibly displaying motion about joints, or even flexing under stress
- advanced use-cases could include things like bi-stable mechanisms
.avifformat is efficient, and supported by most modern browsers- Safari specifically on iOS devices is an exception (but safari on macOS is ok)
.gifformat is likely supported by most image viewing devices at this point, but suffers from colour banding (due to a limited palette) and uses excessive memory (due to poor compression)
Describe alternatives you've considered
The first place my brain goes to for rendering is Blender, which is likely an excellent option for advanced render generation (particularly within custom scenes), but is likely too heavy to be ideal for an average FullControl user. That said, it does have Python support (see this relevant example), and is capable of all the rendering-specific "ideal" features, so is definitely worth considering if we can't find something readily package-able with FullControl, or even just as a more advanced option for users who run into limitations of whatever alternative we can find.
Additional context
Direct rendering from within FullControl may be outside the scope of the project (especially if it's complex to do). It would be cool and valuable though, so is at least worth looking into.
- STL mesh exporting was added in Initial mesh export work #25
- Meshes that are ideal for rendering may be better suited to a different format (that allows specifying colours / material properties)
- Perhaps one of the alternatives discussed in [feature] Mesh Export #20