Skip to content

Iso 2.0 [5/12]: Continuous Feature Chain Solver (variant selection by neighbors) #219

@putersdcat

Description

@putersdcat

Spec reference

IsoRenderingPlanV2.1.md §4 Continuous Features; §5 Solver Pipeline; §Addendum C

Goal

The solver inspects each feature tile's 4 neighbors and assigns the correct
FeatureVariant: straight-h/v, corner-tr/tl/br/bl, tee-t/r/b/l, cross, end-t/r/b/l, isolated.

Result: a fence perimeter has no gaps, no wrong corners, and correct end-caps.
A stone wall run has continuous brickwork with no disconnected posts.

Technical requirements

  • Neighbor bitmask: bit0=top, bit1=right, bit2=bottom, bit3=left
  • 16 bitmask entries → FeatureVariant lookup table
  • Solver runs AFTER world gen places tiles, BEFORE chunk bake
  • solver.resolveVariants(chunk, kind) → mutates nano.variant in place

Acceptance criteria (ALL required to close)

  • 5-tile horizontal fence run → all 5 tiles are straight-h (not isolated).
  • Fence L-corner → corner-br on the turn tile (verified visually: no gap).
  • 3×3 fence perimeter (hollow square) → correct corners at all 4 corners, no isolated variants.
  • Stone wall straight 7-tile run → all straight-h, continuous brickwork, no end-cap artifacts on mid tiles.
  • River cross-shaped join → center tile is cross variant.
  • PNGs committed: ProgressEvaluations/scene-fence-5tile-run.png, scene-fence-3x3-perimeter.png, scene-wall-7tile-run.png, scene-river-cross.png.

Verification command

render_nano_scene entries=[fence tiles forming 3x3 perimeter] outputPath=ProgressEvaluations/scene-fence-3x3-perimeter.png

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions