Constrained design — Noyron-shape rule encoder live

A parametric sphere starts oversized + offset, three constraints active: maximum mass, build-volume containment, minimum wall thickness. The search runs a seeded local-step burst each animation frame; the cross-section through z = 0 paints the current voxel field, the constraint column flips ✗ → ✓ as parameters cross feasibility thresholds, and the objective + total-score numbers descend underneath. Every step is deterministic: same seed, same trajectory, same final design. The output is a typed VoxelGrid artifact, not a chat string.

ready in a moment — the search needs to settle first

About this exhibit

Two substrate primitives compose here. mgai-voxel ships the stored, mutable 3-D scalar field — the kernel layer — with boolean ops, Minkowski offset, and mass properties. mgai-cea sits on top as the rule-encoder layer: Constraint and Objective traits, a Score that bundles the constraint reports with a penalty-weighted total, and a seeded local search.

The three constraints driving the search:

  • max_mass — total mass ≤ 2.0 (density 1.0).
  • within_aabb — every inside cell must fit inside a smaller build-volume than the design starts at.
  • min_wall_thickness — design must survive an inward Minkowski erosion of 0.025; canonical additive-manufacturing rule.

Each constraint emits a ConstraintReport with satisfied / violation / bit_ops / energy_uj. The search penalises violations heavily, so the trajectory converges to a feasible point before refining the objective. Same seed produces the same trajectory across reruns — substrate replayability at the design-search layer.

substrate piece
/lane#pair-01 · chain of thought — deterministic /exhibits/active-inference · closed-loop FEP agent
Direct-to-artifact discipline at picojoule grain. The output is a typed VoxelGrid; mesh export (marching tetrahedra) is one call away in mgai_voxel::mesh::polygonise.