Skip to content

Beautifully Integrate TNO in RV - #20

Merged
tomvanmele merged 12 commits into
BlockResearchGroup:mainfrom
ricardoavelino:thrustdiagram
Aug 28, 2026
Merged

Beautifully Integrate TNO in RV#20
tomvanmele merged 12 commits into
BlockResearchGroup:mainfrom
ricardoavelino:thrustdiagram

Conversation

@ricardoavelino

@ricardoavelino ricardoavelino commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

This PR integrates Thrust Network Optimisation (TNO) into RhinoVAULT, introducing an analysis workflow alongside the existing form–force design workflow.

image

Users can now create structural envelopes, assign assessment loads, and run minimum/maximum thrust, minimum thickness, best-fit, maximum-load, and support-displacement optimisations. The PR also unifies the planar form diagram and 3D thrust network around a single FormDiagram, so optimised geometry and forces remain the source of truth for drawing, editing, export, and force-diagram updates.

Key changes include:

  • Added envelope creation from parametric vaults, middle meshes, and bound meshes.
  • Added RV_loads with FromEnvelope, External, FromFill, and ClearAll workflows.
  • Added TNO objectives for minimum/maximum thrust, minimum thickness, best fit, maximum applied load, and support displacement.
  • Added objective-specific constraint and variable selection, with SLSQP and IPOPT support.
  • Added outward, inward, downward, and manual support-displacement presets.
  • Added explicit planar-form and 3D-thrust selection APIs for vertices and edges.
  • Added thrust faces, edges, pipes, loads, support displacements, force/reaction labels, envelope bounds, and crack visualisation.
  • Updated existing force diagrams after successful TNO optimisation.
  • Added an RV/TNO equilibrium sign-convention bridge.
  • Updated envelope-load handling so assessment loads remain fixed during optimisation.
  • Fixed thrust-load drawing to sum pz and pzext.
  • Switched pattern templates to the more extensive compas_tna factories with pattern-specific discretisation.
  • Updated pointed-vault rise validation and dome discretisation.
  • Updated DEM block export and diagram export to use the unified FormDiagram.
  • Updated the Rhino 8 toolbar with the new workflow commands and icons.
  • Raised the minimum compas_tno requirement to 0.4.0.
  • Removed the obsolete RV_form_solve command and local pattern factories.

The separate ThrustDiagram data structure and RhinoThrustObject scene object have been removed. The 3D thrust network is now a representation of the existing FormDiagram. This is an API-level breaking change, although legacy RhinoVAULT save files were manually verified to remain load-compatible.

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • New feature in a backwards-compatible manner.
  • Breaking change: bug fix or new feature that involve incompatible API changes.
  • Other (e.g. doc update, configuration, etc)

Checklist

  • I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • I ran all tests on my computer and it's all green (i.e. invoke test).
  • I ran lint on my computer and there are no errors (i.e. invoke lint).
  • I added new functions/classes and made them available on a second-level import, e.g. compas.datastructures.Mesh.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if appropriate).

@tomvanmele
tomvanmele merged commit 3decb36 into BlockResearchGroup:main Aug 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants