FP_POC / packages /shared /src /rules /README.md
github-actions[bot]
Space-Deploy aus GitHub main
9de795a
|
Raw History Blame Contribute Delete
3.13 kB

Regel-Interpreter (TS) – Spiegel von fp_engines/rules

Wertet das deklarative Regel-JSON (data/rules/, Schema regel) gegen eine Szene (Raummodell + Plan + Katalog) aus und liefert den constraintReport mit Konfidenz-Ampel: ok | knapp | verletzt | nicht-geprueft. «knapp» = erfüllt, aber Marge < Messunsicherheit (estimatedError_cm; 0 nach geometryConfirmed).

Parameter-Konventionen je Regel-Typ (v0)

type params Semantik
collision – kein Überlappen; vollständig im Raum (Ecken-Heuristik)
wall-distance minDist Objekt-Mitte → nächste massive Wand ≥ minDist
object-distance target, minDist, measure: edge|center Abstand zu Objekten vom Typ target
clearance depth, width? (Default Objektbreite) Zone vor der Objekt-Front (lokal +z) frei + im Raum
door-swing radius v0: Rechteck Türbreite × radius ins Rauminnere (statt Viertelkreis – konservative Näherung)
keep-clear depth, maxObjektHoehe Streifen vor Fenster frei von Objekten mit Gesamthöhe > maxObjektHoehe
host-binding mount, maxWandabstand, minHoehe?/maxHoehe? Wand-/Bodenbindung; Höhenfenster prüft die Oberkante = mountHeight (Unterkante, Plan) + Korpushöhe
connection anschluss, maxDist passender Fixpunkt in Reichweite des Footprints
circulation minWidth v0 soft: Grid/Erosion-Freiraumanalyse – durchgehender Korridor ≥ minWidth zwischen Türen (Marge grob ±Raster)
relation relation soft, nicht-geprueft bis M3 (Solver-Scoring)

⚠️ Paritäts-Gesetz

geometry.ts/scene.ts/interpreter.ts sind 1:1 in services/engines/src/fp_engines/rules/ gespiegelt – gleiche Formeln, gleiche Operationsreihenfolge. Wer eine Seite ändert, ändert im selben Commit die andere Seite und die goldenen Fixtures (packages/shared/fixtures/). Der Paritätstest (vitest und pytest) erzwingt identische Urteile.