# SdfNode backend support
_Generated by `tests/test_node_backend_matrix.rs` (`ALICE_SDF_WRITE_NODE_SUPPORT=1 cargo test --features jit,msl,rust,glsl,hlsl --test test_node_backend_matrix`); no timestamp, the file changes only when its content does._
Every `SdfNode` variant, run through the backends whose outcome can be observed at run time, using the shared test corpus (`tests/common/corpus.rs`). CI fails when a cell changes and this file does not.
| `eval` | the tree evaluator returns a finite distance other than `f32::MAX` | `fallback`: the unknown-variant arm |
| `interval` | `eval_interval` returns a bounded enclosure over a ±2 box | `everything`: no pruning for this variant |
| `compile` | `CompiledSdf::try_compile` succeeds | `err` |
| `jit` | `JitCompiledSdf::compile` (scalar tree JIT) succeeds (`jit` feature) | `err` |
| `jit_simd` | `JitSimdSdf::compile` of the compiled tree succeeds (`jit` feature) | `err`; `-` when the tree does not compile |
| `msl` | `MslShader::transpile` succeeds (`msl` feature) | `err` |
| `glsl` / `wgsl` / `hlsl` | the emitted source is not the child's source forwarded unchanged, for a node whose tree evaluator changes the child's distance (`glsl` / `gpu` / `hlsl` features; `msl` turns on `gpu`) | `pass-through` |
| `rust` | `RustSource::transpile` succeeds (`rust` feature) | `err` |
| `ffi` | a constructor `alice_sdf_<name>` exists in `src/ffi/` (matched by name) | `missing` |
| `python` | a constructor `fn <name>(` exists in `src/python/` (matched by name) | `missing` |
GLSL, WGSL, HLSL and BlinkScript share one dispatch (`transpile_node_inner` in `src/compiled/transpiler_common.rs`) whose `match` has no wildcard arm, so rustc rejects a variant without an arm (`transpiler_dispatch_has_no_wildcard_arm` keeps it that way); the three shader columns check that the arm does more than forward the child (BlinkScript is the HLSL body). `ProjectiveTransform` is measured with the corpus identity and a non-identity matrix.
| `Sphere` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Box3d` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Cylinder` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Torus` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Plane` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Capsule` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Cone` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Ellipsoid` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `RoundedCone` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `Pyramid` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `Octahedron` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `HexPrism` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Link` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Triangle` | ok | everything | err | err | - | ok | ok | ok | ok | err | ok | ok |
| `Bezier` | ok | everything | err | err | - | ok | ok | ok | ok | err | ok | ok |
| `RoundedBox` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `CappedCone` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `CappedTorus` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `RoundedCylinder` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `TriangularPrism` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `CutSphere` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `CutHollowSphere` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `DeathStar` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `SolidAngle` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Rhombus` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Horseshoe` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Vesica` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `InfiniteCylinder` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `InfiniteCone` | ok | everything | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Gyroid` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `MetricBall` | ok | ok | ok | err | err | ok | ok | ok | ok | err | missing | missing |
| `MetricBlend` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | missing | missing |
| `Heart` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Tube` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Barrel` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Diamond` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `ChamferedCube` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `SchwarzP` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Superellipsoid` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `RoundedX` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Pie` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Trapezoid` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Parallelogram` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Tunnel` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `UnevenCapsule` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Egg` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `ArcShape` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Moon` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `CrossShape` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `BlobbyCross` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `ParabolaSegment` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `RegularPolygon` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `StarPolygon` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Stairs` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Helix` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Tetrahedron` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Dodecahedron` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Icosahedron` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `TruncatedOctahedron` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `TruncatedIcosahedron` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `BoxFrame` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `DiamondSurface` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Neovius` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Lidinoid` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `IWP` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `FRD` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `FischerKochS` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `PMY` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Circle2D` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Rect2D` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Segment2D` | ok | everything | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Polygon2D` | ok | everything | ok | err | err | ok | ok | ok | ok | err | missing | ok |
| `RoundedRect2D` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Annular2D` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Union` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Intersection` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Subtraction` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `SmoothUnion` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `SmoothIntersection` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `SmoothSubtraction` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `ChamferUnion` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `ChamferIntersection` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `ChamferSubtraction` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `StairsUnion` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `StairsIntersection` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `StairsSubtraction` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err | ok | ok |
| `XOR` | ok | ok | ok | ok | err | ok | ok | ok | ok | ok | ok | ok |
| `Morph` | ok | ok | ok | ok | err | ok | ok | ok | ok | ok | ok | ok |
| `ColumnsUnion` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `ColumnsIntersection` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `ColumnsSubtraction` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Pipe` | ok | ok | ok | ok | err | ok | ok | ok | ok | err | ok | ok |
| `Engrave` | ok | ok | ok | ok | err | ok | ok | ok | ok | err | ok | ok |
| `Groove` | ok | ok | ok | ok | err | ok | ok | ok | ok | err | ok | ok |
| `Tongue` | ok | ok | ok | ok | err | ok | ok | ok | ok | err | ok | ok |
| `ExpSmoothUnion` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `ExpSmoothIntersection` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `ExpSmoothSubtraction` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `Translate` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err/ok | ok | ok |
| `Rotate` | ok | ok | ok | ok | ok | ok | ok | ok | ok | err/ok | ok | ok |
| `Scale` | ok | ok | ok | err/ok | err/ok | ok | ok | ok | ok | err/ok | ok | ok |
| `ScaleNonUniform` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `ProjectiveTransform` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `LatticeDeform` | ok | everything | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `SdfSkinning` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Twist` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Bend` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `RepeatInfinite` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `RepeatFinite` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Noise` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Round` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Onion` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Elongate` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Mirror` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `Revolution` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Extrude` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `SweepBezier` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Taper` | ok | everything | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `Displacement` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `SineDisplacement` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | missing | missing |
| `PolarRepeat` | ok | ok | ok | err | err | ok | ok | ok | ok | err/ok | ok | ok |
| `OctantMirror` | ok | ok | ok | ok | err | ok | ok | ok | ok | ok | ok | ok |
| `Shear` | ok | ok | ok | err | err | ok | ok | ok | ok | ok | ok | ok |
| `Animated` | ok | ok | ok | err | ok | ok | ok | ok | ok | ok | ok | ok |
| `WithMaterial` | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| `IcosahedralSymmetry` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `IFS` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `HeightmapDisplacement` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `SurfaceRoughness` | ok | ok | ok | err | err | ok | ok | ok | ok | err | ok | ok |
| `Terrain` | ok | ok | err | err | - | ok | ok | ok | ok | err | missing | missing |