Skip to content

Showcase asset manifest

This plan precedes the example implementations. All inputs are procedural Python constants. No downloads, fonts, textures, models or image libraries are required. Run python -m examples.showcase.regenerate from the checkout to rebuild the four SVGs and their numerical manifest. Add --verify to compare a rebuild with the committed artifacts without overwriting them. Output is confined to the named files in examples/showcase/output/; --output-dir selects another directory.

SVGs use a 960 × 560 viewBox, CSS sRGB colors and text with a generic sans-serif font. Geometry and labels are deterministic; font rasterization depends on the viewer. SVGs and measurements.json are committed. There is no random sampling. The existing HDR PNGs are reused by link, never copied or overwritten.

ID / purpose Procedural input Exact output / format Generation and numerical checks Visual acceptance
vectors / displacement and orientation a=(3,1,0), b=(-1,2,0), origin examples/showcase/output/vectors.svg, SVG 960×560 Vector sum, normalization, dot and cross; sum=(2,3,0), dot=-1, cross=(0,0,7) Labeled arrows, displaced b, unit a and positive-Z orientation readable
transforms / row-vector composition four XY rectangle points, scale(2,1), +90° Z rotation, translation(3,-1) examples/showcase/output/transforms.svg, SVG 960×560 Matrix4 products; combined (x,y) → (3-y,2x-1); translation-before-rotation shown separately Original and transformed silhouettes distinguished; order reversal visibly differs
quaternions / interpolated coordinate frames identity and +120° Z unit quaternion, t=0,.25,.5,.75,1 examples/showcase/output/quaternions.svg, SVG 960×560 SLERP and quaternion vector rotation; frames at 0°,30°,60°,90°,120°; norm=1 Five legible frames with increasing counterclockwise orientation
bezier / uniform and adaptive sampling quadratic [(0,0),(2,4),(4,0)], cubic [(0,0),(1,4),(3,-2),(4,1)] examples/showcase/output/bezier.svg, SVG 960×560 Core evaluation and BezierPath at squared tolerances .16 and .0025; quadratic midpoint=(2,2), cubic midpoint=(2,.875), endpoints and dense-reference distance checks Control polygons, sample markers and tolerance-related point counts distinguishable
lighting / active HDR SH rotation existing procedural directional environment, canonical RGB L2 SH examples/output/sh_original.png and examples/output/sh_rotated.png, PNG RGB8 sRGB 192×192; existing JSON/GLSL beside them Existing python -m examples.hdr_sh.regenerate --output-dir /tmp/gem-showcase-hdr; core projection, analytical +90° Z rotation, one cosine convolution, Lambertian evaluation Same camera/material/exposure; highlight moves right to up; no golden file changes

examples/showcase/output/measurements.json records inputs, numerical results, SVG dimensions, byte lengths and SHA-256 hashes. Hashes aid reproducibility; independent numerical and structural checks provide correctness evidence.

No extra Plane/Ray/Viewport gallery is planned: the four diagrams and existing lighting reference form a coherent progression without adding local intersection algorithms or suggesting that the legacy viewport helper is a camera API.