You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Updated helios-core to v1.3.71
## Plant Architecture
- Added `writePlantStructureUSD()` to export a plant as a USD articulated rigid body for NVIDIA IsaacSim physics (capsule links, spherical joints with E*I/L spring/damper drives, organ mass bodies)
- Added growth animation export via `registerGrowthFrame()`, `writePlantGrowthUSD()`, `clearGrowthFrames()`, and `getGrowthFrameCount()` for time-sampled USD animations importable into Blender
## Context
- Added `updateTimeseriesData()` method to replace the value of an existing timeseries data point at a specified (date, time)
- Added compound-object geometry queries: `getObjectType()`, `getObjectCenter()`, `getObjectBoundingBox()`, `getObjectPrimitiveUUIDs()` (single/list/nested), plus per-type getters for tile, sphere, box, disk, tube, and cone objects (center, size, subdivision count, normal, vertices, radius, node/radius data, axis, length, volume)
- Added primitive geometry queries: `getPatchCenter()`, `getPatchSize()`, `getTriangleVertex()`, `getVoxelCenter()`, `getVoxelSize()`, `getPatchCount()`, `getTriangleCount()`, `getPrimitiveBoundingBox()` (single UUID or list)
- Added `setPrimitiveColor()` for mutating the color of one primitive or a list of primitives, accepting either `RGBcolor` or `RGBAcolor`
- Added `clearPrimitiveData()` and `listPrimitiveData()` for removing and inspecting per-primitive data fields
- Added domain cropping: `cropDomainX()`, `cropDomainY()`, `cropDomainZ()`, and `cropDomain()` to restrict all primitives (or a supplied UUID list) to given XYZ bounds
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,21 @@
1
1
# Changelog
2
2
3
+
# [v0.1.19] 2026-04-16
4
+
5
+
- Updated helios-core to v1.3.71
6
+
7
+
## Plant Architecture
8
+
- Added `writePlantStructureUSD()` to export a plant as a USD articulated rigid body for NVIDIA IsaacSim physics (capsule links, spherical joints with E*I/L spring/damper drives, organ mass bodies)
9
+
- Added growth animation export via `registerGrowthFrame()`, `writePlantGrowthUSD()`, `clearGrowthFrames()`, and `getGrowthFrameCount()` for time-sampled USD animations importable into Blender
10
+
11
+
## Context
12
+
- Added `updateTimeseriesData()` method to replace the value of an existing timeseries data point at a specified (date, time)
- Added `setPrimitiveColor()` for mutating the color of one primitive or a list of primitives, accepting either `RGBcolor` or `RGBAcolor`
16
+
- Added `clearPrimitiveData()` and `listPrimitiveData()` for removing and inspecting per-primitive data fields
17
+
- Added domain cropping: `cropDomainX()`, `cropDomainY()`, `cropDomainZ()`, and `cropDomain()` to restrict all primitives (or a supplied UUID list) to given XYZ bounds
Copy file name to clipboardExpand all lines: docs/plugin_plantarchitecture.md
+63-1Lines changed: 63 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -728,12 +728,14 @@ PlantArchitecture provides comprehensive file I/O capabilities to save and load
728
728
729
729
### Overview
730
730
731
-
Four file I/O methods are available:
731
+
The following file I/O methods are available:
732
732
733
733
1.**`writePlantStructureXML()`**: Save complete plant structure to XML for later loading
734
734
2.**`readPlantStructureXML()`**: Load saved plant structures from XML files
735
735
3.**`writePlantMeshVertices()`**: Export all mesh vertices for external processing
736
736
4.**`writeQSMCylinderFile()`**: Export to TreeQSM format for biomechanical analysis
737
+
5.**`writePlantStructureUSD()`**: Export plant structure as a USD articulated rigid body for NVIDIA IsaacSim physics simulation
738
+
6.**`registerGrowthFrame()`** / **`writePlantGrowthUSD()`** / **`clearGrowthFrames()`** / **`getGrowthFrameCount()`**: Capture and export per-step growth snapshots as a time-sampled USD animation file (importable into Blender)
737
739
738
740
All methods work with both string paths and `pathlib.Path` objects, and correctly handle relative/absolute paths.
739
741
@@ -887,6 +889,66 @@ The exported file contains tab-separated values with the following information f
887
889
- Tree architecture studies
888
890
- Integration with TreeQSM analysis tools
889
891
892
+
### Export USD Articulated Rigid Body (IsaacSim Physics)
893
+
894
+
Export the plant structure as a PhysX articulation in USDA (ASCII USD) format for NVIDIA IsaacSim physics simulation. Each tube segment becomes a capsule-shaped rigid link connected by spherical joints whose local frames encode the rest-pose orientation. Spring/damper drives are derived from beam bending stiffness (`K = E*I/L`). Leaves, fruits, and flowers are represented as mass bodies attached by spring links.
Capture per-step plant geometry snapshots during a growth simulation and export them as a time-sampled USDA animation that imports directly into Blender. Organs that appear during growth are toggled visible at the appropriate frame.
This export is visual-only — no physics prims, joints, or collision shapes are written. For physics simulation, use `writePlantStructureUSD()` instead.
951
+
890
952
### Path Handling
891
953
892
954
All file I/O methods accept both string paths and `pathlib.Path` objects, and correctly handle relative/absolute paths while preserving the user's working directory.
0 commit comments