Presentation constructor based on web-viewer

Hi there!
We continue to push the maximum functionality out of the web-viewer :muscle: The next idea is… what if we can use it as an embeddable and interactive presentation tool?

There are 3 basic function that can be easily implemented:

  1. Layers - loading objects from other branches of the stream
  2. Animations - objects sent as a list of objects with corresponding numerical value assigned to each (MeshX: 1, MeshY: 2, etc)
  3. Simple counter of the Named Views - basically buttons switching between Named Views one by one.

By now, you can even capture the camera views directly in the web-viewer and save each in the list, along with visibility of the layers, some comments and maybe other features.

Currently we implemented a small demo (gif below) with extra panel to view the presentation (grey buttons), edit (blue) and save/delete changes (red).


Let us know what do you think! What are the features you would like to add? What are better ways to implement the ones described here?
Tagging possibly interested @HD_STEEL and @RSainmaa

P.S. animation example was not included in the demo, so here we go:


Hello @Kateryna

That is a powerful way of making presentations.

What I would add is definitely some way of adding comments (text labels with arrows or similar) to the slides.


I would also make the slides visible below or on some of the sides of the web-viewer

Also, I am not sure, can some items in the branch be hidden or can you change their transparency?

Finally, it would be very handy if the presentation can be downloaded ( PDF or JPEG’s maybe) at the end.


Hey @Kateryna this already looks pretty neat!

What I’d specifically looking be looking for is more of a 4D phasing presentation.
This would require to show/hide objects or layers for specific slides and maybe even changing the coloring of the objects to show ‘active’ or ‘inactive’ objects in different colors. It could also just change the coloring based on the difference of object visibility compared to the previous slide.

And of course all this information would be nice to generate in Grasshopper for example instead of clicking away in a web interface.

Also I didn’t really catch how the animations are pushed in? A list of meshes with corresponding values, the animation is somehow tweened or interpolated from those meshes and their sequence in a specific timeframe?

1 Like

Thank you for the inputs @HD_STEEL and @RSainmaa ! Very insightful!

The comment feature is on the roadmap and will make its way in in the next months :wink:
Some navigation for the slides would indeed be useful! Also, there is a possibility to differentiate which panels are displayed depending whether the presentation is in progress or ready for display. For example, those red/blue panels are only useful for editing, but for display it’s better to show navigation only.
Regarding filtering and hiding specific objects, there are some magic features coming soon from @cristi :mage:

Indeed it started with Grasshopper! :cricket: We just finished the summary of the implementation in GH, it is fairly easy to compose the presentation there. But there are several issues with it.
1 - You need a Rhino license:)
2 - GH seems to be having hard time with lots of objects loaded at the same time, and on the laptops like mine it keeps crashing.
3 - You can still do it, and even add much more advanced object properties to filter the object layers later (rather than creating layers from entire branches) but frontend needs to be adapted to each property name you created, and their hierarchy. So, bringing it all into web, can be a way to standardize the presentation format based on existing Speckle object structure.

Same article :upside_down_face: Basically each step of movement is saved as a separate mesh, e.g. Mesh “shadows for 9am” has an added property “9”, Mesh “shadows for 10am” has a property “10” etc. When the frontend detects this extra property, instead of showing all meshes at once, it is showing them 1-by-1.


Hi @Kateryna

One thing more. It is probably a matter of taste, but I would make the center of rotation in the viewer to be always where you click with your mouse (similar to BIMVision). Also maybe add the UCS or something else for orientation.

1 Like

If i understand correctly, this web viewer is only built to currently display objects in rhino.

and second question:
is there a limit on file size and performance? i.e. i have a point cloud that is several hundred mb in size.
Does the computing happen on a cloud server, or are we live streaming from our device and speckle is mirroring what is happening?