A stylized hatchback lofted as one half (52 stations, 13-point rings) and completed by the Mirror modifier, evaluated through the depsgraph. Wheels, lamps, grille, door mirrors and handles mirror about object origins parked on the symmetry plane; the grille is authored as a half and welded on it.
-
+
@@ -56,7 +56,7 @@ Car Mirror Symmetry
witnesses Mirror is a modifier, not applied data: the original keeps the authored half while the evaluated mesh is the welded, watertight, exactly symmetric whole.
tags modifiers depsgraph
-
blender --background --python examples/car-mirror-symmetry/car_mirror_symmetry.py --
+
blender --background --python examples/car-mirror-symmetry/car_mirror_symmetry.py --
Copy
jump to Run Exit codes Source Related
@@ -69,7 +69,7 @@ Car Mirror Symmetry
The render is the proof: hide the mirror and the still is literally half a car — one headlamp, one door mirror, half a grille, a hood cut open at the centerline. The camera stands on the key light's side, high enough to look down the hood centerline so both halves read at once. The weld itself is not a pixel witness — the hood and roof are nearly flat across the plane, so an unwelded seam renders within 12/255 of the welded one; the 2n − c count is what catches it.
Render notes: the 13-point loft reads faceted at gallery size, so the --output path — after check() has asserted every closed-form count on the Mirror-only stack — stacks a Subdivision Surface modifier (level 2) after MirrorHalf. Order matters: subdividing the half first would pull the centerline off the plane; subdividing the welded whole keeps it exact. Panel breaks stay crisp through a crease_edge attribute: every material border (glass, pillars, arch cladding, the chrome window-sill strip) creases fully and the fascia cap outlines half-crease, so the nose keeps its shape. The body is smooth-shaded with hard shading only at material borders; the separate parts keep a 40° dihedral split, and their boundary edges on the plane take the angle to their own mirror image, acos(1 − 2nₓ²), so centerlines shade smooth. The paint is candy red over a faint metallic base under a softened clear coat; the rim light is large and dim and set steep — a small bright rim mirrors in the roof as a clipped white slab, and a shallow one prints its own terminator line across the floor. Tires carry a 72-groove tread bump masked to the outward-facing band, and the rims are a half-metallic alloy (a full metal mirrors the black stage and the spokes vanish). The previous faceted loft had a thin pink-white streak on the hood by the windshield: not a seam (it sat at |x| 0.11–0.38, on the mirrored half, and all weld checks passed) but a sliver facet — the loft's greenhouse points collapsing onto the hood — flat-shaded and facing the key almost head on (n · −key = 0.967). The redesigned ring lerps a hood layout into a cabin layout, so no such sliver exists. Panel classes are by construction position: underbody, rocker and arch cladding are trim; side glass is the sill-to-glass-top segment under the roof, broken by a trim B-pillar; the drip rail becomes the A-pillar; windshield and hatch glass are the roof bands where the cabin factor ramps. The glass is a dark dielectric whose base colour ramps toward steel blue at grazing angles (Layer Weight → Color Ramp) — on a near-black stage there is little to reflect, and flat dark glass read as dull paint. Lamps, grille, mirrors and handles are closed superellipse pods seated on the skin by a BVHTree ray cast, with a chrome bezel and an inset lens rather than flat boxes.
Run#
-# Cheap correctness check (no render) — the CI check:
+# Cheap correctness check (no render) — the CI check:
blender --background --python car_mirror_symmetry.py --
# Falsifier: Mirror X off. Must exit non-zero (evaluated verts stay at n).
@@ -122,7 +122,7 @@