@@ -39,19 +39,13 @@ suffix, at index `total_elements - current_elements`.
3939
4040![ Schematic] ( ../_static/growing_arm/active_suffix_diagram.png )
4141
42- Editor and GitHub ** Markdown previews** only render ordinary `  ` image
43- links like the lines above. They do not run Sphinx, so fenced ` image ` directives
44- would show as raw text. After ` sphinx-build ` or ` make html ` in ` docs/ ` , open
45- ` _build/html/custom_elastica/growing_arm.html ` in a browser (or use hosted docs)
46- to see the full themed layout.
47-
4842## What ` _GrowingCRBoundaryConditions ` does
4943
5044The class in
5145` src/virtual_field/runtime/custom_elastica/boundary_conditions.py ` subclasses
5246PyElastica’s ` NoForces ` and runs each step as ** forcing** on the rod.
5347
54- 1 . ** Turret tracking**
48+ 1 . ** Turret tracking**
5549 A callable ` controller() ` returns a world-frame rotation matrix (and a
5650 position that is currently unused). The base of the active segment is pulled
5751 toward a fixed ` target_position ` with gain ` p_linear_value ` , and its
@@ -60,20 +54,20 @@ PyElastica’s `NoForces` and runs each step as **forcing** on the rod.
6054 rotation (SO(3) logarithm / inverse Rodrigues construction), including a
6155 stable branch near π.
6256
63- 2 . ** Growth / shrink**
57+ 2 . ** Growth / shrink**
6458 Two booleans, ` trigger_increase_elements ` and ` trigger_decrease_elements ` ,
6559 request changing ` current_elements ` . A short ** debounce** (0.3 s) avoids
66- repeated toggles.
60+ repeated toggles.
6761 - ** Increase** (when ` current_elements < total_elements ` ): increment
6862 ` current_elements ` , then call ` _reset_element_kinematics_and_strains ` on the
6963 new base index so the newly exposed segment is snapped to rest length,
7064 inherits directors from its neighbor, and clears spurious velocity/angular
71- rates at that joint.
65+ rates at that joint.
7266 - ** Decrease** (when ` current_elements > min_elements ` ): decrement
7367 ` current_elements ` only; the shorter active prefix leaves the folded
7468 storage as-is for the next steps.
7569
76- 3 . ** Ramp** (artifact from rest of the PyElastica)
70+ 3 . ** Ramp** (artifact from rest of the PyElastica)
7771 ` ramp_up_time ` scales both linear and angular efforts by
7872 ` min(1, time / ramp_up_time) ` so startup does not impulse the rod (in typical
7973 setups ` ramp_up_time ` is chosen very small).
@@ -93,4 +87,4 @@ n_elem`, then attaches `_GrowingCRBoundaryConditions` with:
9387- ** secondary** button: increase length (edge-triggered in ` handle_commands ` ).
9488
9589That pairing is one concrete UX; the boundary class only needs the triggers and
96- controller you provide.
90+ controller you provide.
0 commit comments