RhinoVAULT 2
An open-source research platform for funicular form finding based on COMPAS
Research Platform
RhinoVAULT 2 (RV2) is an open-source research and development platform for funicular form-finding built with COMPAS, a Python-based framework for computational research and collaboration in Architecture, Engineering, and Digital Fabrication. More information about COMPAS is available here.
RV2 has a Rhino plugin that replaces RhinoVAULT for Rhino versions 6 and above. Unlike RhinoVAULT, RV2 no longer relies on Rhino for its computational implementation. Instead, it is built entirely with open source packages from the COMPAS ecosystem and will, therefore, be available not only for Rhino and Grasshopper, but also for Blender and other tools with a Python scripting interface, and ultimately even in the browser.
Core Functionality
The core functionality of RV2 is based on the following COMPAS packages and can be used in any environment that supports Python.
Base data structures
File support
Numerical solvers
Geometry processing
Form, Force and Thrust Diagrams
Horizontal equilibrium
Vertical equilibrium
For the design of force patterns in Form Diagrams, we use
Pattern design based on topological features and placement of singularities in quad meshes.
Pattern design based on line skeletons.
Pattern design based on Constrained/Conforming Delaunay Triangulations.
CAD integration packages make this core functionality available in specific software like Blender or Rhino. The current release of RV2 provides only a plugin for Rhino (Blender and Grasshopper integration is under development and will be available soon):
Geometry and data structure conversions.
Drawing functionality.
Selections and interaction.
Remote Procedure Calls
Rhino CommandPlugin
The Rhino plugin is implemented as a CommandPlugin. In the current release, the following commands are available:
RV2boundary_boundaries
RV2boundary_openings
RV2boundary_supports
RV2clear_all
RV2cloud_check
RV2cloud_restart
RV2cloud_shutdown
RV2file_open
RV2file_save_as
RV2file_save
RV2force_attributes
RV2force
RV2force_modify_edges
RV2force_modify_vertices
RV2force_move_vertices
RV2form_attributes
RV2form
RV2form_modify_edges
RV2form_modify_vertices
RV2form_move_vertices
RV2form_relax
RV2form_smooth
RV2init
RV2pattern_attributes
RV2pattern_delete
RV2pattern_from_features
RV2pattern_from_lines
RV2pattern_from_mesh
RV2pattern_from_skeleton
RV2pattern_from_surface
RV2pattern_from_triangulation
RV2pattern_modify_edges
RV2pattern_modify_vertices
RV2pattern_move_vertices
RV2pattern_relax
RV2pattern_smooth
RV2pattern_subdivide
RV2redraw
RV2settings
RV2thrust_attributes
RV2thrust_modify_vertices
RV2thrust_move_supports
RV2tna_horizontal
RV2tna_vertical
Each command has a corresponding xxx_cmd.py
file. All command files have the same structure. For example, one of the simplest commands is RV2redraw
, which is defined in RV2redraw_cmd.py
Rhino UI
Using a JSON config file, commands are then organised as menu items and toolbar buttons and compiled into a Rhino User Interface file (*.rui
). This is the file you loaded into Rhino during the installation process.
By initialising RV2, the COMPAS functionality is loaded and the commands are made available. At the same time, a server is started to run commands that require specific CPython functionality "in the cloud" through remote procedure calls.
Open Source
The development of RV2 is hosted on Github and is entirely open source. The public repository is available here: https://github.com/BlockResearchGroup/compas-RV2.
Note that this is also the place where you can contribute to the development, report issues, or submit feature requests.
Current Release
The current release of RV2 aims at providing similar functionality as the original RhinoVAULT plugin with the same workflow.
Available
Integration of various force layout mechanisms through pattern design and modification.
Form, Force, and Thrust Diagrams re-implemented as half-edge data structures for more flexible and robust topological operations.
Automatic updating of unsupported boundaries.
Weighted horizontal equilibrium calculations (in pure Python).
Dynamic visualisation of horizontal equilibrium calculations.
Force scaling based on target heights.
Iterative vertical equilibrium calculations with automatic self-weight updating.
Form/Force Diagram geometry constraints.
Horizontal force constraints.
Internal openings.
Internal supports ("Drop-downs").
RV2 session files for saving and loading design sessions.
Coming soon
Synchronized topological operations on Form and Force Diagrams.
Integration of tension members.
Assignment of additional/live loads.
Lumped stress visualisation.
Interactive inspection of the topological relation between the diagrams.
Future Releases
Future releases will focus on the integration of recent recent at the BRG related to funicular form finding. This includes the following.
Automated force distribution finding based on target surfaces ("Best-fit").
Automated pattern modifications for live load cases.
Assignment of force distribution templates.
Last updated