Grid Placement 6.0 — snap-fit grids for Godot 2D + 3D

Place buildings on an isometric map, paint layered terrain with fences that keep the ground underneath, build side-view platformer levels, settle hex tiles — or snap together a 3D modular house. Every clip below is captured from a real running demo, driven through the real placement pipeline. In the 3D house proof, floors, walls, door, windows, four CORNER posts, both roof slopes and both gables are real placement commits (44 total); only the chimney is staged dressing, labeled as such wherever it appears.

source-bound media 11cdeb1f2 / 5fb956884 3D film 44/44 commits 2D guard --strict green @ 11cdeb1f2

Kit-house assembly — floors through GRID roof, end to end

The page-head clip is the full build: floor deck → N/S walls and door → E/W window columns → four CORNER posts → House Roof slopes → House Gable triangles, each through catalog ghost → valid → click. Chimney is the only visual-only dressing. No closing orbit — 89.4 s, readable per beat, in a woodland clearing with the compact idle UI. Valid previews render as a neutral wash (the ghost shows where the piece lands; green verdicts live on the ground quads) instead of a full-volume green slab. Poster: walls going up with the catalog live — one real film frame.

real game footagee2e assembly1280×720 · 89.4 s · 2681 frames8.6 MB
Proof details + object classification

Cut (frames 92–2772, no reordering — catalog select through finished house + chimney, orbit excluded) from media/demos/grid_placement_6_house_proof.mp4 (2930 f, 97.7 s, driver godot/test/smoke/demo_3d_house_film.gd, PROOF_DONE placed_total=44, fail-closed). The 24-tile 1×1 floor deck is laid with one rect-fill drag through the demo-owned drag path (click = corner A, cursor glide = corner B, release commits the inclusive rectangle through the real service); walls, door, windows, four CORNER posts, two per-slope roof pieces and two dedicated yaw-0 gable scenes commit through the GRID CELL/CORNER ghost paths. Placement ops come from HouseBuildPlan — the same SSOT the GdUnit geometry suite enforces. Per-object classification: placement_service 44 (24 deck fill tiles, N row + NW/NE corners, E column + E shutters + SE corner, S row + door + SW corner, W column + W shutters, 2 roof slopes, 2 gables) · visual_only 1 (chimney — staged, never registered) · authored_environment (grid + woodland clearing + dressing props). The camera glides per beat (deck, N face, S face, E/W columns, corners, roof, both gables) so every commit lands on screen. A fail-closed PROOF_GEOM gate verifies dressed-face-outward on all 12 wall-family slots and full 24-cell deck coverage before PROOF_DONE. Captured at source 5fb956884 (branch work/site-final: woodland clearing + idle-UI overhaul, neutral valid-ghost wash).

>

1. Watch placement happen — five workflows

The four 2D demos are driven through their real placement flow — paint, select, preview, place, rotate, move, demolish, mode-switch — and recorded at fixed 30 fps through the release-gate pipeline (scripts/ci/demo_video_proof.py generate, commit-bound manifest, guard --strict green at 11cdeb1f2); the 3D house film v6 is captured at 5fb956884 with the rect-fill deck drag, per-beat camera, woodland clearing and neutral valid-ghost wash. Press play on any card.

Top-down — layered terrain, objects and fences

Fences occupy their own layer — painting a fence never replaces the ground underneath. The fence goes down as one hollow 4×4 pen with a stone pillar parked beside it on bare ground; rotate/flip, demolish and a clean mode-switch close the loop. 14/14 checkpoints, zero skips.

16.5 s1280×720326 KB

Isometric — grid-aligned building on an isometric map

Single snow, then a grass drag across the diamond grid, then a blacksmith snapped onto it. Then the failure workflow: a tile is demolished, the building re-selected, hovered over its own occupied tile — red ghost, rejected — and the cursor moved away. 12 supported checkpoints pass, 2 honestly unsupported.

17.0 s1280×720553 KB

Platformer — side-view placement and editing

Wall blocks need neighbors: an isolated single is rejected on the spot, a connected block lands. The crate lands in the empty cell above its painted support — resting on it, not inside it. Rotation is honestly skipped: the supported box cannot rotate in place. 11 supported checkpoints pass, 2 unsupported.

12.9 s1280×720179 KB

Hex — native hex-grid placement

Dirt, grass, stone and water brushed across a true hex grid with the beehive selected and the cursor highlight tracking every cell. 7 supported checkpoints pass, 5 unsupported (terrain-only paths).

10.0 s1280×720243 KB

House — 3D placement interaction on the grid

Empty grid to finished house in the placement-demo scene: catalog select, one rect-fill drag lays the 24-tile 1×1 deck, ghost previews → walls → door → windows → four CORNER posts → two per-slope roof pieces → gable triangles, with the toolbar, mode readout and build log visible throughout. 44 GRID commits (CELL fill + CELL + CORNER + shutter overlays); chimney is the only staged dressing. The camera glides per beat so exactly what is being placed is on screen — deck from above, N/S faces, E/W columns, corners, roof, both gables. Filmed at 5fb956884 — dressed faces verified outward by the in-film geometry gate, every deck-side joint flush on its grid line, corners MOUNTED at the intersections (see §2).

97.7 s1280×72011.2 MB

2. Finished 3D result — seam-closed modular walls

A real frame of the same §1 film (closing orbit): every module below was committed through the placement pipeline, none hand-placed. Wall, door, window, roof and gable modules carry measured mesh bounds and opt into partner-aware seam closure, so each deck-side face lands exactly on its shared grid line — verified numerically at this source on all four interfaces (N, S, E, W) plus the floor grade, worst joint gap 0.0000. Four CORNER posts commit at the wall-joint intersections (generic yaw, exterior occupancy).

Finished modular house — gable framing, dressed roof, four CORNER posts, flush wall-to-deck joints

Finished house — 44 committed modules + staged chimney

24-tile deck, 2 N walls, an S wall, an S door, 3+3 E/W wall/window column pieces through GRID CELL commits, four CORNER posts at the outer intersections, then two individual Roof Slope pieces (one commit per side) and two House Gable ends through the same GRID CELL ghost-click path. Gable plaster fills the roof WoodTrim bargeboard triangle. Chimney is staged dressing only (flipped so its moulded end is buried in the roof plane). Watch the 89.4 s page-head clip for the piece-by-piece assembly, or the 97.7 s proof film for the closing orbit.

placement proofall joints flush @ 0.00004 CORNER posts MOUNTED
Seam closure (numeric, #971): N/S/E/W deck interfaces and floor grade all close to 0.0000 on the real path; four CORNER posts MOUNTED at the intersections with generic yaw from adjoining walls — not per-corner hardcoded transforms. Preview == commit == restore. Former wireframe stills were unrecapturable foreign-workflow artifacts and are retired; the numeric verdicts above are the current evidence.
Corner note (#982, open): House Corner is back in the 3D catalog as a CORNER mount. Each of the four posts commits independently through preview → valid → commit at the wall-joint intersection (not the CELL centroid). Generic orientation from adjoining walls; preview == commit == restore. #971 seam closure on walls/doors/windows is unchanged (FLUSH 0.0000).

3. Why Grid Placement 6.0

2D + 3D in one plugin

Square, isometric and hex grids plus side-view and full 3D — the clips above are all the same system.

Layered terrain

Ground, fences, objects and buildings stack on separate layers instead of overwriting each other.

Modular pieces that snap

Walls, doors, windows, floors, corner posts, roof slopes and gable triangles align to grid slots — the house is 44 committed modules, zero manual nudging. (The chimney shown is staged dressing, not a placement commit.)

Save / load in the demo UI

Every 2D demo ships SAVE and LOAD front and center — persistence is part of the workflow, not an afterthought.

4. itch.io store set — sized, verified, cut at this source

Final-RC media: the whole set — the four 2D demo MP4s, posters, GIFs and shots, plus the 3D house film, posters, cover and house GIF/shot — is cut from real captures: the four 2D films (guard --strict green at 11cdeb1f2) and the 3D house film v6 at 5fb956884 (44 GRID commits: one rect-fill deck drag + CELL + CORNER + shutter overlays, per-slope roof + mirrored gables, per-beat camera, woodland clearing, fail-closed PROOF_GEOM gate). Download from this page and upload as-is.

Every file below is cut to itch.io's published specs (cover 315:250; 3–5 screenshots any size; animated GIFs accepted as screenshots; trailer via YouTube/Vimeo link — itch takes no direct video upload). Download from this page and upload as-is. Slot plan + byte counts: itch_media_inventory.md.

itch.io cover — active wall placement with verdict indicator, title lockup, demo proof strip and warm CTA pill

Cover — 630×500 PNG

Exact 315:250 ratio. A real active-placement frame (walls landing, green verdict quad on the grid, catalog live) under a title + value-prop lockup, with a five-demo proof strip and warm CTA pill. Built by scripts/ci/build_covers.py from v6 film frame 1100; every pixel is game footage. Upload this PNG as the cover. 2× master (1.1 MB) linked for reuse.

630×500345 KB315:250
Screenshot — finished modular house with placement UI

Screenshot 1 — house

Finished kit house with fitted gables, roof, chimney and four CORNER posts, placement toolbar and build log — a real frame (2600) of the §1 film. PNG 856 KB · GIF 1.4 MB

Screenshot — top-down fence placement

Screenshot 2 — top-down

4×4 pen with the pillar parked beside it, selected row and placement log. PNG 354 KB · GIF 661 KB

Screenshot — hex terrain painting

Screenshot 3 — hex

Dirt and water brushed on the hex grid, beehive ghost tracking the cursor. PNG 349 KB · GIF 446 KB

Screenshot — isometric blacksmith placement

Screenshot 4 — isometric

Blacksmith on snow and grass with the build log confirming it. PNG 508 KB · GIF 904 KB

Screenshot — platformer wall building

Screenshot 5 — platformer

Walls and the box committed with adjacency rejects in the build log. PNG 151 KB · GIF 746 KB

Animated — top-down workflow

GIF — top-down workflow

Full 13.3 s flow at 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

640×36012 fps
Animated — isometric workflow

GIF — isometric workflow

Full 17.0 s flow including the failure workflow, 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

640×36012 fps
Animated — platformer workflow

GIF — platformer workflow

Full 12.8 s flow at 12 fps, 640×360, loop-verified — opens mid-action, no slow intro. Uploads directly as an itch screenshot.

640×36012 fps
Animated — hex workflow

GIF — hex workflow

Full 10.0 s flow at 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

640×36012 fps
Animated — house wall assembly excerpt

GIF — house wall assembly

8.0 s W-face assembly excerpt (frames 1660–1899: wall/window/shutter commits, stable camera, same-framing loop), 12 fps, 640×360. Uploads directly as an itch screenshot.

640×36012 fps
Trailer (video): itch.io takes no direct video upload — the Trailer field wants a YouTube/Vimeo URL. Upload media/demos/grid_placement_6_house_proof.mp4 (97.7 s, 11.2 MB, kit-house assembly end to end) there, then paste the link. The five demo MP4s (§1) work as unlisted YouTube clips linked from the description.

5. Technical verification / release evidence

Audit material for reviewers. Everything above is backed by the artifacts below — same source, revalidated on each deploy. Closed by default; open what you need.

Capture source
11cdeb1f2 / 5fb956884
2D films / house film v6
2D checkpoints
44 / 0
supported pass / fail · 9 unsupported skips @ 11cdeb1f2
3D input verify
33 / 33
fail-closed checks + film 44/44
Migration
PASS
5.0.9 → 6.0, idempotent
Provenance — source, kit, pipeline
2D demo proof provenance + checkpoint detail
Media file inventory
media/demos/grid_placement_6_house_assembly.mp4  8.6 MB 89.4 s 2681 frames (hero: floors through roof slopes+gables+chimney, frames 92–2772, no orbit)
media/demos/grid_placement_6_house_proof.mp4  11.2 MB 97.7 s 2930 frames (3D placement interaction, UI visible, placed_total=44, rect-fill deck drag, woodland clearing)
media/demos/grid_placement_6_top_down_proof.mp4  326 KB 16.5 s (fence pen + pillar + demolish) @ 11cdeb1f2
media/demos/grid_placement_6_isometric_proof.mp4  553 KB 17.0 s (blacksmith + failure workflow) @ 11cdeb1f2
media/demos/grid_placement_6_platformer_proof.mp4  179 KB 12.9 s (walls + box + adjacency rejects) @ 11cdeb1f2
media/demos/grid_placement_6_hex_proof.mp4  243 KB 10.0 s (hex paint + beehive) @ 11cdeb1f2
media/demos/*_poster.jpg  6 posters, each cut from its film (house_poster = v6 frame 2772; assembly poster = v6 frame 1100; 2D posters = current action stills)
media/itch/cover/cover_630x500.png  345 KB active-placement cover v2 (v6 frame 1100 + five-demo proof strip), master 1.1 MB
Grid Placement 6.0 media review — 2D films guard-strict green at 11cdeb1f2 (branch work/site-final: idle-UI overhaul, real-click proof driver). 3D house film v6 + house posters/shot/GIF at 5fb956884 (woodland clearing, neutral valid-ghost wash). Issues #982/#971/#907/#973 stay open.