Skip to content

[FEATURE REQUEST] Output mesh rendering #69

@ES-Alexander

Description

@ES-Alexander

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:

  1. Photo-realistic image rendering
  2. Customisable materials and lighting
    • Transparent materials could be important for some applications
  3. Customisable camera positioning, with automatically determined reasonable defaults
  4. 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
  5. Renderer package-able with FullControl (e.g. installable automatically using pip, as an optional project dependency)
  6. 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
    • .avif format is efficient, and supported by most modern browsers
      • Safari specifically on iOS devices is an exception (but safari on macOS is ok)
    • .gif format 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions