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 and four CORNER posts are real placement commits; the roof, gables and chimney are presentation dressing and are labeled as such wherever they appear.

source-bound media f4c974fad 3D film 20/20 commits 2D guard --strict green @ 21d90ef98

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

The page-head clip is the full ground-story build: floor deck → N/S walls and door → E/W window columns → four CORNER posts → staged gables, roof and chimney. Every committed piece lands through the real placement pipeline (CELL for floors/walls/door/windows, CORNER for the posts). Roof dressing is visual-only. No catalog warmup and no closing orbit — 24.1 s, readable per beat. Poster: SE CORNER ghost beside the finished gable — two real film frames, process → destination.

real game footagee2e assembly1280×720 · 24.1 s · 724 frames597 KB
Proof details + object classification

Cut (frames 92–815, no reordering — floors through staged roof, orbit excluded) from media/demos/grid_placement_6_house_proof.mp4 (997 f, 33.2 s, driver godot/test/smoke/demo_3d_house_film.gd, PROOF_DONE placed_total=20, fail-closed). Sixteen CELL commits plus four CORNER posts; gable rafters fitted under the tiles (non-uniform scale, inward yaw). Per-object classification: placement_service 20 (6 floors, 2 N walls, S wall, S door, 3+3 E/W wall/window column pieces, 4 CORNER posts) · visual_only 4 (2 gables, roof, chimney — staged, never registered) · authored_environment (grid, vegetation, knight). Captured at source f4c974fad (PR #986).

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 21d90ef98); the 3D house film is recaptured at f4c974fad. 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.3 s1280×720298 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. 14 checkpoints pass, 2 honestly unsupported.

16.8 s1280×720528 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. 13 pass, 2 unsupported.

12.7 s1280×720152 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. 12 pass, 5 unsupported (terrain-only paths).

10.0 s1280×720229 KB

House — 3D placement interaction on the grid

Empty grid to finished house in the placement-demo scene: catalog select, ghost preview, floor deck → walls → door → windows → four CORNER posts at the wall-joint intersections → dressed roof, with the toolbar, mode readout and build log visible throughout. 16 CELL commits plus 4 CORNER posts; the roof set is staged dressing. Filmed at f4c974fad — every deck-side joint lands flush on its grid line and each corner is MOUNTED at the intersection (see §2).

33.2 s1280×7202.6 MB

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

A real frame of the same §1 film (closing orbit): every ground-story module below was committed through the placement pipeline, none hand-placed. Wall, door and window 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 — 20 committed modules + staged roof dressing

6 floors, 2 N walls, an S wall, an S door, 3+3 E/W wall/window column pieces through GRID CELL commits, plus four CORNER posts at the outer intersections; gables, roof and chimney dressed on top (staged, never registered as placements). Gable WoodTrim rafters sit under the tiles — the old 0.54 m proud poles were an accidental scale/yaw mismatch, now fitted. Watch the 24.1 s page-head clip for the piece-by-piece assembly, or the 33.2 s proof film for the closing orbit.

placement proofall joints flush @ 0.00004 CORNER posts MOUNTED
True-wireframe proof — live mesh triangle edges over the committed 20-piece house

True wireframe — mesh edges vs grid truth

Blue/cyan edges are triangles read back from the live placed meshes; green dashed lines are cell boundaries, red planes are the declared closure interfaces, yellow ticks are committed origins. Four CORNER posts sit on the wall-joint intersections. Full verdicts: N/S/E/W joints and floor grade all FLUSH; each corner MOUNTED.

worst joint 0.0000bound to f4c974fad
True-wireframe close-up — N wall-wall joint closing on its grid line

Joint close-up — N wall-wall interface

The declared closure plane (red) sits exactly on the shared grid line and both committed wall faces land on it: measured N wall-wall gap 0.0000. Same closure contract covers the S wall-door joint and both window-column joints.

N gap 0.0000numeric, not visual
True-wireframe close-up — NE CORNER post flush with both walls

NE corner — intersection mount

Post origin on the N/E wall-joint; occupancy fills the exterior quadrant so the timber faces both outer walls. Generic yaw from adjoining hosts — not a per-corner hardcoded transform.

MOUNTEDyaw +π/2
True-wireframe close-up — SE CORNER post flush with both walls

SE corner — intersection mount

Same contract on the S/E joint. Knight and dressing cubes are authored environment, not placements.

MOUNTEDyaw 0
True-wireframe close-up — NW CORNER post flush with both walls

NW corner — intersection mount

N/W joint, exterior occupancy. Posts align with both wall thicknesses; no outer notch, spur, float or bury.

MOUNTEDyaw π
True-wireframe close-up — SW CORNER post flush with both walls

SW corner — intersection mount

S/W joint after the NE/SW yaw-sign fix. Local +X+Z lands in the exterior quadrant on all four orientations.

MOUNTEDyaw −π/2
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 and corner posts align to grid slots — the house is 20 committed modules, zero manual nudging. (The pitched roof 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: 3D house film, posters, cover and house GIF/shot are cut from the recapture at f4c974fad (20 CELL+CORNER commits). The four 2D demo MP4s, posters, GIFs and shots remain the 21d90ef98 bundle (guard --strict green). 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 — finished timber-gable house with title lockup

Cover — 630×500 PNG

Exact 315:250 ratio. Finished timber-gable house under a title + value-prop lockup — one strong building, no dashboard. Built by media/itch/cover/build_covers.py from a real capture frame (fitted south gable, frame 840); every pixel is game footage. Upload this PNG as the cover. 2× master (827 KB) linked for reuse.

630×500268 KB315:250
Screenshot — top-down fence placement

Screenshot 1 — top-down

4×4 pen with the pillar parked beside it, demolish confirmed in the log. PNG 351 KB · GIF 690 KB

Screenshot — isometric blacksmith placement

Screenshot 2 — isometric

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

Screenshot — platformer wall building

Screenshot 3 — platformer

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

Screenshot — hex terrain painting

Screenshot 4 — hex

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

Screenshot — finished modular house with placement UI

Screenshot 5 — house

Finished kit house with fitted gables, roof, chimney and four CORNER posts, placement toolbar and “Placed.” confirmation in the log — a real frame of the §1 film. PNG 438 KB · GIF 192 KB

Animated — top-down workflow

GIF — top-down workflow

Full 16.3 s flow at 12 fps, 640×360. Uploads directly as an itch screenshot.

640×36012 fps
Animated — isometric workflow

GIF — isometric workflow

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

640×36012 fps
Animated — platformer workflow

GIF — platformer workflow

Full 12.7 s flow at 12 fps, 640×360. 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. Uploads directly as an itch screenshot.

640×36012 fps
Animated — house foundation excerpt

GIF — house foundation excerpt

8 s foundation excerpt (floor deck down, first walls landing), 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 (33.2 s, 2.6 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.

3D source
f4c974fad
house film + wireframe
2D checkpoints
53 / 0
pass / fail · 9 unsupported skips @ 21d90ef98
3D commits
20 / 20
fail-closed film proof
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  597 KB 24.1 s 724 frames (hero: floors through staged roof, frames 92–815, no orbit)
media/demos/grid_placement_6_house_proof.mp4  2.6 MB 33.2 s 997 frames (3D placement interaction, UI visible, placed_total=20)
media/demos/grid_placement_6_top_down_proof.mp4  298 KB 16.3 s (fence pen + pillar + demolish) @ 21d90ef98
media/demos/grid_placement_6_isometric_proof.mp4  528 KB 16.8 s (blacksmith + failure workflow) @ 21d90ef98
media/demos/grid_placement_6_platformer_proof.mp4  152 KB 12.7 s (walls + box + adjacency rejects) @ 21d90ef98
media/demos/grid_placement_6_hex_proof.mp4  229 KB 10.0 s (hex paint + beehive) @ 21d90ef98
media/demos/*_poster.jpg  6 posters, each cut from its film (2D unchanged; house_poster = frame 1580; assembly poster = split of frame 1200 CORNER ghost | frame 1580)
media/demos/wireframe/truewire_iso.png + truewire_joint_N.png + truewire_corner_{NE,SE,NW,SW}.png  true-wireframe proof (live mesh edges vs grid truth, 20-piece)
Grid Placement 6.0 media review — 3D house film + wireframe captured at source f4c974fad (branch fix/982-corner-intersection-mount, PR #986). 2D demo clips remain at 21d90ef98. Storefront set (§4) is cut from these captures. Known nits: film toasts/cursor visible in 3D frames, beige dressing block at the plot edge, in-demo cubes/knight in wireframe stills — tracked for a later pass. Issues #982/#971/#907/#973 stay open.