Speckle, Interoperability Dynamo, Grasshopper and Three.js

So I was watching this video (SFCDUG September 2018 | Speckle, Interoperability Dynamo, Grasshopper and Three.js - YouTube) last evening and was very enthusiastic on the bits showing a configurator.

Also really fun to see you guys in the early phases :slight_smile:

So how are those configurators working?

Is it like running Rhino and GH on some server? Or maybe it using Rhino Compute? Then on the frontend you have ThreeJS and update some parameters using the Speckle GraphQL endpoint? And then Rhino/GH can auto-receive, update the geometry and send it back to ThreeJS, or how does that work?

Could you give some insights on how such a configurator can be build now-a-days with the current version of Speckle?

I would first and foremost scope out what the configurator’s degrees of freedom need to be. The main question is do you actually need a live instance of rh/gh in the background (like shapediver) to power it, or can you get away with precomputed instances?

Speckle streams (pre-1.0, my gosh it’s 5 years ago!) had both going:

From my experience with this back then, essentially

  • precomputed instances are much better and more reliable
  • live connections to a gh “server” introduce a lot of complexity that most likely it’s not needed

In real life - especially for AEC (not product) workflows - I think we tend to overestimate the need for flexibility when it comes to configurators. It masks some laziness on behalf of the designer - you need to put effort in curating the relevant options, of which usually there’s very few actually viable ones.

Bla bla aside, actually @AlanRynne & @clrkng did a really nice demo for a speckle 2.0 based configurator a few months back. I tried finding the link and failed, they’ll post it here :smiley:

4 Likes

Yup! We did a configurator of sorts with pre-computed data sent to different branches. You can find it here

https://specklesystems.github.io/aec-tech-presentation/WebStarter/index.html

You’ll need to create a Personal Access Token to load the data, as well as the ID of a stream with the properly set branches in place. You can try with this one:

3 Likes

@dimitrie @AlanRynne thnx for the example!

I do love that you shared your experience, especially:

  • precomputed instances are much better and more reliable
  • live connections to a gh “server” introduce a lot of complexity that most likely it’s not needed

Going to try to build some parametric design in GH to get some more skills in this area.

I would love to try and see if I can generate all permutations to Speckle branches. What do you think… would that be feasible? Or maybe even partially.

1 Like

I think the “feasibility” of doing pre-computed permutations depends directly on how many options do you allow the user to “generate”.

On our side, I don’t think there’s anything stopping you from creating as many branches as you need. But it may become a huge task to setup and maintain.

1 Like