Single-Machine Tree Simulation
P17.4 adds a deterministic single-machine spatial simulation over a pinned tree inventory. It moves one machine through one block, selects trees by reach, rejects trees blocked by terrain or circular obstacles, and emits per-tree processing events. It is a reference execution layer, not a calibrated machine-routing or physics model.
The phase plan is notes/tree_scale_simulation_plan.md.
Model
The simulator:
starts at an explicit
(x, y, z)point, or at the first tree when no start is supplied;processes the nearest feasible tree within
reach_radius_m;when no tree is in reach, moves to an approach point within reach of the nearest feasible tree;
rejects a tree when a circular obstacle contains it or when the absolute terrain slope between the current position and the tree exceeds
max_slope_percent;uses the ADV6N10 harvester regression for processing time, with the tree’s merchantable volume, log count, one stem per cycle, and mean log length;
uses a constant
travel_speed_m_per_sfor moves.
The default values are reach 10 m, travel speed 0.5 m/s, and maximum
slope 35%. They are reference parameters, not field-calibrated settings.
A start point can represent a landing. Automatic landing-geometry lookup is not part of P17.4; pass the landing coordinates explicitly when that matters.
CLI
fhops tree simulate scenarios/example/scenario.yaml \
--block B01 \
--machine H1 \
--start-x 881700 --start-y 627500 --start-z 412 \
--reach-radius 10 \
--max-slope 35 \
--out build/tree_machine
Optional circular obstacles use --obstacle x,y,radius_m and may be repeated.
Outputs:
tree_machine_events.csv— one row per visit or unreachable tree;tree_machine_simulation.json— manifest with parameters, events, totals, volume reconciliation, warnings, and caveats.
--dry-run prints the manifest without writing files.
Limits
One machine, one block. Multi-machine traffic, forwarding/landing logistics, and whole-landscape routing are out of scope.
Tree positions and elevations come from the inventory; terrain is not a DEM.
Obstacles are circular exclusions supplied explicitly; FHOPS does not infer them from geometry or point clouds.
Travel is constant speed, not a machine dynamics model.
Processing time uses an existing harvester regression and the reference stem model; it is not a field-validated productivity claim.
No 3D scene or video is produced in this task.
See Tree-Scale Schedule Replay for the schedule-coupled replay.