Procedural modeling & simulation
Build node-based procedural assets and run cloth, fluid or rigid-body sims.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Houdini · Blender Geometry Nodes
- Class GUI-need label
HY· Hybrid
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R06.06.01.03-T01 Scatter rocks on a terrain with slope and spacing rules
Original instruction
In fixtures/valley.blend, build a Geometry Nodes setup on object 'Terrain' that scatters 500 instances from collection 'Rocks' with seed 7: no rock where slope > 30 deg, minimum spacing 0.5 m, random Z rotation, scale 0.6-1.4, rocks aligned to surface normal. Expose 'Count' and 'Max Slope' as modifier inputs. Save output/valley_rocks.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender Geometry Nodes
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Grader evaluates the depsgraph with bpy: 500 +/- 5 instances; 0 instances on faces with slope > 30.5 deg; min pairwise distance >= 0.5 m; scales in range; up-vector within 2 deg of surface normal. Changing exposed 'Count' to 200 yields 200 +/- 2 instances. Modifier must be live (not applied).
Proposed partial credit
20% count; 30% slope rule; 20% spacing; 30% orientation/scale (15 pts) and exposed inputs work (15 pts).
R06.06.01.03-T02 Build a parametric building HDA with floor sweep
Original instruction
In Houdini, create a digital asset 'building_gen' (otls/building_gen.hda) that takes a footprint curve and parameters floors (5-20), floor_height (default 3.2 m), window_spacing (default 1.5 m) and produces a closed building with per-floor window cutouts and a parapet. Test on fixtures/footprints.bgeo.sc.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clicktype· Text & forms- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
hython loads the HDA and sweeps floors 5..20 on 3 footprints: height = floors x 3.2 + parapet (1.0) within 1%; window count per facade = floor(len / spacing) +/- 1 per floor; geometry closed (no boundary edges except window reveals); parameters exist with the required names/ranges. Cook errors fail the case.
Proposed partial credit
20% HDA with named parameters; 35% height across sweep; 30% window logic; 15% clean closed geometry.
R06.06.01.03-T03 Knock down a 100-brick wall with an RBD sphere
Original instruction
In Houdini build a 10x10 brick wall (bricks 0.2x0.1x0.1 m, running bond) on a ground plane and fire a 0.5 m sphere at 12 m/s into it at frame 10. Simulate with RBD Bullet so all pieces settle by frame 120 with no interpenetration. Cache to sim/wall.$F4.bgeo.sc (frames 1-150).
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickvis· Visual judgment- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Grader reads the cache: 100 packed bricks with correct dims; sphere velocity 12 +/- 0.5 m/s at frame 10; >= 30 bricks displaced > 0.5 m; at frame 120 max piece speed <= 0.05 m/s; pairwise interpenetration depth <= 2 mm on all frames >= 120; all 150 frames present.
Proposed partial credit
20% wall built to spec; 20% impact setup; 40% settled without interpenetration; 20% cache complete.
R06.06.01.03-T04 Drape a tablecloth over a table without intersections
Original instruction
In fixtures/dining.blend, simulate a 2x1.4 m tablecloth dropping onto 'Table' so it drapes evenly (overhang 30 +/- 3 cm on long sides) with no cloth-table intersection, using Blender cloth physics. Bake frames 1-80, apply the result at frame 80 as a new mesh 'Tablecloth_Final' with a Solidify of 2 mm. Save output/dining_cloth.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender · Marvelous Designer
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentdrag· Drag & drop- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Final mesh: penetration count 0 vertices inside table (signed distance >= 1 mm), overhang measured at 10 points per long side 30 +/- 3 cm; cloth area preserved within 3% (no blown-up stretch); mesh on table top within 5 mm of surface. Cache present for frames 1-80.
Proposed partial credit
35% no intersections; 30% overhang even; 20% area preserved; 15% baked and applied.
R06.06.01.03-T05 Simulate a smoke plume to a height and density spec
Original instruction
In Houdini build a pyro smoke plume from a 1 m disc emitter (temperature 1.5, density 1) with voxel size 0.05 m, buoyancy tuned so the plume top reaches 8 m +/- 0.8 at frame 96, and turbulence that keeps the plume width under 4 m. Cache VDBs to sim/plume.$F4.vdb (frames 1-120).
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentdrag· Drag & drop- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
OpenVDB reader: voxel size 0.05; plume top (highest voxel with density > 0.01) at frame 96 within 7.2-8.8 m; max lateral extent < 4 m through frame 120; density fields present for all frames; no NaNs. Monotonic rise checked frames 1-96.
Proposed partial credit
15% emitter and voxel size; 40% plume height at frame 96; 25% width constraint; 20% cache valid.
R06.06.01.03-T06 Fill a glass to 80 percent with a FLIP simulation
Original instruction
Using fixtures/glass_scene.hip (glass collider with 2 mm walls), pour water from the spout so the glass fills to 80% +/- 2% of interior height by frame 150, with no leaks through the walls and liquid at rest (mean speed < 0.05 m/s) by frame 180. Cache particles and a meshed surface to sim/.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentdrag· Drag & drop- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
Particle cache: fluid level (95th percentile height of particles inside glass) at frame 150 = 80 +/- 2% of interior height; particles outside glass after frame 150 <= 0.5% (leak check); mean speed at frame 180 < 0.05 m/s. Meshed surface exists for frames 150-180 and is closed.
Proposed partial credit
20% emitter/collision setup; 40% fill level; 25% no leaks; 15% settled and meshed.
R06.06.01.03-T07 Generate a fence along a curve with Geometry Nodes
Original instruction
In fixtures/farm.blend, add a Geometry Nodes modifier on curve 'FenceLine' that places post instances every 2.0 m (exact), two horizontal rails at 0.4 m and 0.9 m, posts 1.1 m tall and upright regardless of curve tilt. Expose Spacing and Height inputs. Save output/farm_fence.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender Geometry Nodes
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
bpy depsgraph: post count = floor(curve length / 2) + 1; spacing along curve 2.0 +/- 0.01 m; posts vertical within 1 deg; rail heights within 1 cm; changing Spacing to 3 m updates count accordingly. Modifier live.
Proposed partial credit
30% post spacing/count; 25% rails; 20% upright posts; 25% exposed inputs work.
R06.06.01.03-T08 Build a road that conforms to a terrain heightfield
Original instruction
In Houdini, from the road centerline fixtures/road_curve.bgeo and heightfield fixtures/hills.bgeo.sc, generate a 7 m two-lane road with 1.5 m sidewalks, 0.15 m curbs, banking <= 4 deg, and cut/fill the heightfield so the road sits on terrain. Save output/road.hip and export output/road.fbx and output/hills_modified.exr.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Road mesh: width 7 +/- 0.05 m, sidewalk 1.5, curb 0.15 m; banking <= 4 deg; road centerline within 0.1 m horizontally of input curve. Modified heightfield: within 1 m of road edge, terrain within 5 cm of road surface; no road vertex more than 5 cm below terrain. Export files present.
Proposed partial credit
30% road cross-section; 20% follows curve; 35% terrain conforms; 15% exports.
R06.06.01.03-T09 Match a reference tree silhouette with a procedural generator
Original instruction
Build a procedural tree in Geometry Nodes or Houdini (Labs Tree tools allowed) that matches ref/oak_front.png and ref/oak_side.png (scaled, 12 m tall): trunk height to first branch 3 m, 3 branch levels, leaf cards on level 3. Expose a seed parameter. Export output/oak.fbx.
- Platforms
mac· macOSwin· Windows- Applications
- Blender Geometry Nodes · Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentdrag· Drag & dropclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Silhouette IoU of the canopy vs reference >= 0.8 in both views; total height 12 +/- 0.3 m; first branch height 3 +/- 0.2 m; 3 branch levels detected by curve hierarchy; leaf cards only on level 3; changing seed alters branching but keeps height within 5%. Blender's Python console/--python and Houdini's Python Shell, Textport and hython are disabled; files written outside the apps are logged.
Proposed partial credit
40% silhouette match; 25% dimensions; 20% branch structure; 15% seed parameter.
R06.06.01.03-T10 Hang a cable between two poles with Vellum
Original instruction
In Houdini, simulate a 22 m cable between the two pole attachment points in fixtures/poles.hip with Vellum (mass 1.2 kg/m, stiff stretch), so at rest the mid-span sag is 0.5 m +/- 5 cm, then add a 2 m/s wind gust at frame 48 that swings it without breaking. Cache sim/cable.$F4.bgeo.sc (frames 1-200).
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentdrag· Drag & drop- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Cache: endpoints fixed at attachment points (<= 1 mm); cable length change <= 1%; sag at frame 40 = 0.5 +/- 0.05 m; lateral displacement after frame 48 peaks 0.2-1.5 m and decays; no NaN, no self-intersections; frames complete.
Proposed partial credit
20% constraints pinned; 40% rest sag; 25% wind response; 15% cache valid.
R06.06.01.03-T11 Fracture a concrete pillar with breakable glue constraints
Original instruction
In Houdini, fracture the pillar in fixtures/pillar_hit.hip into 50-80 Voronoi pieces with denser pieces near the impact point, glue them with constraints of strength 800 so the pillar survives the first light hit (frame 24) and breaks on the car impact (frame 60), and simulate to frame 160 with debris settling. Cache to sim/pillar.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickvis· Visual judgment- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Pieces 50-80; mean piece volume within 1 m of impact <= 40% of far-region mean. Frames 24-59: max piece displacement <= 1 cm (survives); after 60: >= 20 pieces displaced > 0.3 m; frame 160 max speed <= 0.05 m/s; interpenetration <= 3 mm; constraint network present with strength 800.
Proposed partial credit
20% fracture count/density; 30% survives first hit; 30% breaks on impact; 20% settles cleanly.
R06.06.01.03-T12 Create a pipe-routing HDA that avoids obstacles
Original instruction
Build a Houdini HDA 'pipe_router' that takes start/end points and an obstacle set and generates a 0.1 m-diameter pipe routed on a 0.25 m grid with only 90-degree bends (bend radius 0.3 m), 0.2 m clearance from obstacles and the fewest bends. Test on fixtures/plant_room.bgeo.sc with the 6 point pairs in fixtures/pipe_pairs.json.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & droptype· Text & formsclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
hython cooks all 6 cases: each pipe connects its endpoints (<= 1 mm), clearance >= 0.2 m from obstacles and other pipes, bend angles 90 +/- 0.5 deg, bend radius 0.3 +/- 0.01 m, bend count <= GT optimum + 1. Pipes closed tubes with correct diameter. Cook errors fail the case.
Proposed partial credit
20% connectivity; 30% clearance; 20% bend geometry; 30% near-optimal bend count.
R06.06.01.03-T13 Instance buildings on city lots from a plan
Original instruction
In fixtures/city_block.blend, lots are curves in collection 'Lots' with an integer attribute 'zone' (1 residential, 2 commercial). With Geometry Nodes, place one building from collection 'Res' or 'Com' per lot by zone, rotated to face the nearest street edge, scaled to fit inside the lot with 2 m setback, never overlapping. Save output/city_block.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender Geometry Nodes
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Depsgraph: exactly one instance per lot (42); instance collection matches zone; footprint inside lot polygon with >= 2 m setback; facing direction within 5 deg of nearest street normal; 0 footprint overlaps. Modifier live.
Proposed partial credit
20% one per lot; 20% zone mapping; 30% setback fit; 30% facing street (15 pts) and no overlaps (15 pts).
R06.06.01.03-T14 Drop a soft-body jelly with volume preservation
Original instruction
In Houdini, make a 0.3 m jelly cube with Vellum soft-body (tetrahedral) that drops from 1 m onto a plate, wobbles and settles by frame 90 while preserving volume within 5% at every frame. Cache sim/jelly.$F4.bgeo.sc frames 1-120.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentdrag· Drag & drop- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Cache: closed surface each frame; volume within 5% of rest on all frames; peak compression at impact >= 10% height reduction (visible wobble); centroid height stable (<= 2 mm variation) from frame 90; no plate penetration.
Proposed partial credit
20% soft-body setup; 35% volume preserved; 25% visible wobble; 20% settles without penetration.
R06.06.01.03-T15 Groom fur with hair curves and a painted density map
Original instruction
On fixtures/fox.blend, create a hair-curves groom with Geometry Nodes: 20k guide-derived strands, density driven by a vertex group you paint (none on eyes, nose, paw pads), length from 1 cm (face) to 6 cm (tail) following ref/fox_length_map.png, and clumping on the tail. Save output/fox_groom.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
path· Continuous pathvis· Visual judgmentdrag· Drag & drop- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Evaluated curves: 20k +/- 5%; strand roots inside GT no-fur regions = 0; length per region within 20% of the length map; tail clump coefficient (mean pairwise tip distance) <= 50% of unclumped. Painted vertex group exists and its zero-weight area matches GT mask IoU >= 0.85. Blender's Python console, Text Editor and --python are disabled; .blend writes from outside Blender are logged and fail.
Proposed partial credit
15% strand count; 30% painted density mask; 35% length map; 20% tail clumping.
R06.06.01.03-T16 Set up an ocean with a target wave spectrum
Original instruction
In Houdini, build an ocean surface (Ocean Spectrum + Evaluate) for a 500 m tile that matches the sea-state brief: significant wave height 2.0 m +/- 0.2, peak period 8 s, wind direction 45 deg, plus whitewater foam on crests. Cache 240 frames of displaced geometry at 24 fps to sim/ocean.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP07· Simulation result- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Grader samples 100 surface points over 240 frames: Hs = 4*std(elevation) within 1.8-2.2 m; peak period from temporal spectrum 8 +/- 0.6 s; dominant direction from 2D spectrum 45 +/- 8 deg. Whitewater points exist and concentrate on top 10% elevation crests (>= 70%).
Proposed partial credit
35% wave height; 25% period; 20% direction; 20% whitewater on crests.
R06.06.01.03-T17 Generate the building sweep with hython (control pair of T02)
Original instruction
Control pair of T02: from a terminal only, write tools/build_gen.py for hython that builds the same building generator network (floors 5-20, floor_height 3.2, window_spacing 1.5, parapet) and saves otls/building_gen_cli.hda. Do not open the Houdini GUI.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini (hython)
- Interfaces
term· Terminal- GUI need · task setting
CL· CLI-sufficient- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
code· Code & commands- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Identical checks to T02 on building_gen_cli.hda: height sweep within 1%, window counts +/- 1, closed geometry, parameter names. License log must show only hython/batch checkouts. Scored side by side with T02.
Proposed partial credit
20% HDA with named parameters; 35% height across sweep; 30% window logic; 15% clean geometry.
R06.06.01.03-T18 Cache an existing FLIP sim to disk with the right range
Original instruction
fixtures/splash_shot.hip contains a working FLIP sim that currently caches nothing (File Cache node bypassed, frame range 1-1, output path to /tmp). Configure the File Cache to write sim/splash.$F4.bgeo.sc for frames 1001-1100 with substeps unchanged, run the cache, and save the .hip.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro apphidden· Hidden/stale state- Proposed difficulty
- 2 / 5
Proposed verifier
100 files sim/splash.1001-1100.bgeo.sc exist and are non-empty; particle counts match a GT run within 2% at frames 1050 and 1100; .hip saved with File Cache unbypassed, path and range set; solver substeps unchanged.
Proposed partial credit
30% cache node configured; 40% all frames written; 20% matches GT counts; 10% sim settings unchanged.
R06.06.01.03-T19 Build a parametric bookshelf asset in Geometry Nodes
Original instruction
Create a Geometry Nodes asset 'Bookshelf' in a new Blender file with inputs Width (0.6-2.4 m), Height (1-2.4 m), Shelves (2-8), Board Thickness (18 mm default). Shelves must be evenly spaced and the asset marked in the Asset Browser. Save output/bookshelf_gn.blend.
- Platforms
mac· macOSwin· Windows- Applications
- Blender Geometry Nodes
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
bpy sweeps 6 parameter sets: outer bbox equals Width x Height within 1 mm; shelf count = Shelves with spacing equal within 1 mm; board thickness exact; no overlapping boards; node group marked as asset with the 4 named inputs.
Proposed partial credit
25% inputs exist; 35% dimensions follow inputs; 25% even shelves; 15% asset marked.
R06.06.01.03-T20 Erode a canyon terrain, scatter vegetation and export to Unreal
Original instruction
Brief notes/canyon_brief.pdf: in Houdini build a 2x2 km heightfield canyon whose river follows fixtures/river_path.bgeo, apply hydraulic and thermal erosion, scatter pine (slope < 25 deg, elevation 200-600 m) and shrubs (river banks, within 30 m of water), and export a 2017x2017 16-bit PNG heightmap, weight masks and point CSVs for Unreal import.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Houdini · Unreal Engine
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropvis· Visual judgmentclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizonmultiapp· Multi-app- Proposed difficulty
- 5 / 5
Proposed verifier
Heightmap: size 2017, 16-bit, elevation range per brief within 2%; river channel lowest along given path (<= 3 m from path, depth >= 15 m); erosion evidence (flow-accumulation ridges, slope histogram vs GT within 15%). Scatter CSVs obey slope/elevation/distance rules for >= 98% of points. Unreal import of the map succeeds (headless check).
Proposed partial credit
25% heightfield spec and river; 20% erosion; 35% scatter rules; 20% export and Unreal import.
Mapped research references
Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.