feat(branch): phyllotactic spiral and upward angle

Default rotation to the golden angle (137.5°) so successive branches
spiral naturally around the stem. Add an `angle` input (-90..90°) that
tilts branches between horizontal and along-stem before rotating around
the stem axis.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 23:43:17 +02:00
parent e5df19b6d8
commit 49746c6079
2 changed files with 11 additions and 1 deletions
@@ -83,6 +83,14 @@
"min": 0, "min": 0,
"max": 360, "max": 360,
"step": 0.01, "step": 0.01,
"value": 137.5
},
"angle": {
"type": "float",
"description": "Upward tilt of branches. 0 = horizontal, positive = upward, negative = drooping.",
"min": -90,
"max": 90,
"step": 1,
"value": 0 "value": 0
} }
} }
+3 -1
View File
@@ -78,7 +78,9 @@ pub fn execute(input: &[i32]) -> Vec<i32> {
continue; continue;
} }
let branch_direction = rotate_vector_by_angle(orthogonal, direction, rotation_angle); let up_angle = evaluate_float(args[10]) * PI / 180.0;
let tilted = (orthogonal * up_angle.cos() + direction * up_angle.sin()).normalize();
let branch_direction = rotate_vector_by_angle(tilted, direction, rotation_angle);
log!( log!(
"BRANCH depth: {}, branch_origin: {:?}, direction_at: {:?}, branch_direction: {:?}", "BRANCH depth: {}, branch_origin: {:?}, direction_at: {:?}, branch_direction: {:?}",