Please note that Flux.io shut down on 31 March 2018 and is no longer available. However, this tutorial has been kept for legacy purposes.
Dashboard is an app developed by Flux and can be launched from your Flux home page. Unlike some of the other apps developed by Flux, it is not yet open-source. To create a Dashboard:
Step 1 – Create Grasshopper/Dynamo script
- Create your Grasshopper or Dynamo script with the usual input components to verify the script is working as intended.
Step 2 – Create Flux project
- Create a new Flux project.
- Add in all the data keys that you’ll need, matching the Grasshopper/Dynamo inputs and outputs. For example, in our ‘twisty tower’ example, I’ll need to create 10 as follows (6 input, 4 output):
These are currently empty keys. We’ll assign a value to the keys later.
Step 3 – Modify Grasshopper/Dynamo script
- Back in Grasshopper/Dynamo, replace the input slider with Flux components. We’ll need to use the ‘Flux Project’, ‘Select from list’ and ‘From Flux’ components. These components will pull data from Flux. When removing the input components, be sure to take note of its function so that you can match it up with the relevant Flux key in the ‘Select from list’ component. Since the Flux keys don’t have a value yet, you will likely get a warning error. This is OK.
Similarly, add in the new Flux output components to send the data to Flux. We’ll need the ‘Select from list’ and ‘To Flux’ components.
Step 4 – Create a dashboard
- In your Flux home page, click the ‘Launch’ button under Dashboard.
- Create a new dashboard by clicking on the plus button.
- Add in new dashboard panels as required. Generally, you’ll need a ‘slider’ panel for an input, a ‘geometry’ panel to visualise the geometry, and a ‘value’ panel to report a value such as Gross Floor Area.
- When creating the dashboard panel, select the key to be paired with and give the slider a name (usually the same as the key). The min and max of each key are controlled here as well as opposed to Grasshopper or Dynamo, which is somewhat frustrating. Rather than adding multiple individual sliders, it is often better to ‘add a slider’ within the slider dashboard panel to create a multi-slider. The sliders will be structured in the order that they were created. Currently, it is not possible to re-order the sliders once created, something I’m sure will be fixed soon.
- Once created, each dashboard panel can be scaled and moved as required.
- Modify the Flux sliders as required. There will be a short lag between adjusting the sliders until the geometry is updated. This is because data is flowing from Flux into Grasshopper before being sent back into Flux. This process could be sped up by creating the entire script within the Flux Flow app, thereby eliminating Grasshopper or Dynamo. Also note that unlike Dynamo or Grasshopper, it is not possible to double click in the slider and enter the desired value. You must use the slider by sliding it, which makes achieving the desired value difficult.
Overall Flux’s Dashboard is still in an embryonic state and has some development to go before it is sophisticated enough for what most architects need. Plug-ins like HumanUI or Conduit offer much more advanced user interfaces if using Grasshopper. If you’re using Dynamo, then there are fewer options.
While the dashboard example above can be shared via a URL, it requires the recipient to have both Rhino, Grasshopper, Flux and any other plug-ins installed to run as expected. Therefore, to harness the full potential of Dashboard, the underlying script needs to be written in Flow, Flux’s visual programming app. This would allow easy URL sharing, cloud computing and eliminate any software installation. The obvious problem with this is that Flow uses an entirely different language to that of Dynamo or Grasshopper. Any existing scripts would need to be entirely rewritten from scratch within Flow which is not necessarily practical nor desirable. Having said that, I’m sure Flux is aware of its limitations, and I look forward to seeing the product evolve to reach its true potential.