Files
RuView/docs/readme-visual-system.md

4.6 KiB

RuView README visual system

The README matches the RuView header palette: deep navy backgrounds, electric blue RF fields, lime pose and signal accents, warm amber joints and soft white text, layered isometric geometry, moving scan planes, radar sweeps, articulated pose limbs, breathing curves and separated hardware layers. Each feature uses its own illustration rather than repeating the same wireframe cube. It includes a hero, six feature cards, six navigation icons, an overview, five chapter headings and a Cognitum destination banner. Headlines use a heavier Avenir Next / Segoe UI Variable Display / Segoe UI / Helvetica stack, with tighter spacing and a dedicated system monospace stack for labels. Fonts remain local fallbacks so the images also render without a network connection.

Rebuild and check

python3 -m pip install -r scripts/requirements-readme-visuals.txt
python3 scripts/render-readme-visuals.py
python3 scripts/verify-readme-visuals.py
python3 -m unittest discover -s scripts/tests -p test_readme_visuals_xml.py

Install the tooling dependency in a virtual environment. The generator and verifier use defusedxml to reject DTDs, entities and external XML references. SVG inputs must be smaller than 20,000 bytes; the verifier reads at most that limit and rejects oversized inputs before parsing. Both tools use UTF-8, and generated files use LF line endings for reproducibility across platforms. They make no network calls. This dependency is only for visual maintenance, not the runtime. Manifest paths must be relative: SVG files stay inside assets/readme, and local link targets stay inside the repository, including after symlink resolution.

The committed SVGs are the deployment artifacts. The manifest in assets/readme/manifest.json lists every destination. Spatial artwork uses -spatial-v4.svg filenames so GitHub's image proxy requests fresh content after the visual upgrade. Previous filenames remain available for existing links; new README wrappers use the versioned assets.

GitHub renders SVGs as images, so image-internal links are not used. Each SVG has an outer Markdown or HTML link in the README. Each card and navigation icon also has a plain text link for narrow screens and assistive technology. Source headings remain intact so existing README anchors still work.

Animation uses CSS only. Depth is projected directly into SVG geometry rather than relying on a WebGL canvas or CSS perspective. Translation is applied to inner groups so it cannot overwrite the outer icon placement. Projected orbit planes stay fixed while dashed signals move along them; scan planes sweep the wireframe volumes. Unused animation rules are removed from each image to keep the complete active SVG set below 100 KB. All copy and essential geometry are visible without animation, JavaScript, remote fonts or remote images. prefers-reduced-motion disables decorative movement. The original GIF remains at the top; the existing ruOS promotion remains linked. Existing asset dimensions and README links are preserved.

Content boundaries

The overview and RF room are conceptual illustrations, not live measurements or benchmark evidence. Feature cards link to current source documentation. Pose research is identified as such, and the signal card directs readers to hardware validation. No new speed, accuracy, medical or device-support claims are introduced.

Sources: docs/user-guide.md, docs/benchmarks/pose-estimation-cog.md, v2/crates/wifi-densepose-signal/README.md, firmware/esp32-csi-node/README.md, docs/integrations/home-assistant.md, and harness/ruview/README.md.

The hero and pose card use -spatial-v6.svg: an original anatomical human silhouette with shaded torso, head, hands and feet, overlapping limbs, surface contours and amber joint markers. A 1.6-second gait drives opposing arm and leg swings, weight shifts and ground shadow compression. An 8-second CSS perspective turn and moving surface light give the anatomical illustration depth. Each limb pivots at its own shoulder or hip. The effect remains a projected SVG illustration, not a skinned WebGL model. The stylesheet disables gait and perspective movement for reduced motion. Chrome 154 validation confirmed the 3D transform, opposing limb transforms, animation in an HTML image, and a frozen standalone SVG under reduced motion. Reduced-motion emulation did not freeze the embedded image in that test; image preference propagation remains a browser-dependent limitation. This is vector artwork, not a real body scan or measured pose reconstruction. Other assets retain their v4 filenames.