Anduril Naming + Pattern Studio is a deterministic identity generation system and governed registry for tactical systems. It functions as a visual synthesizer that converts semantic identifiers (names) into tactical geometric artifacts (marks) using cryptographic seeds and historical cipher systems.
The application is built with a "Tactical Metaphor Stack", prioritizing high information density, full-bleed layouts, and isometric projection over traditional web design patterns.
The application consists of four primary command modules:
A read-only gallery of committed identity artifacts.
- Function: Displays the current state of the naming database.
- Interaction: Select an object to load it into the Generator context for modification or analysis.
- Visuals: Grid-based layout with isometric previews.
The core deterministic engine.
- Input: Takes a string identifier (e.g., "WRAITH").
- Hashing: Converts the string into a 32-bit integer seed using the
djb2algorithm. - Visualization:
- Cipher: Converts the seed (mod 10000) into a Cistercian Numeral vector path.
- Pattern: Uses a
Mulberry32PRNG to generate a 16x16 pixel grid based on specific tactical patterns (Noise, Bunker, Runway, Data, Perimeter). - Projection: Renders the combined result in an isometric 3D SVG view using painter's algorithm sorting.
- Controls: Fine-tuning for density, stroke weight, framing, and blend modes (Overlay, Knockout, Interlock).
A protocol-driven review system for maintaining visual integrity.
- Automated QA: Runs real-time checks against the generated artifact.
- Density Check: Ensures pixel density is between 20% and 45%.
- Caliper Check: Ensures stroke width is viable for physical fabrication (1.5px - 5.0px).
- Contrast Check: Verifies blend mode legibility.
- Workflow: Objects move from
Draft->In Review->ApprovedorRejected.
Fabrication-ready output generation.
- Output: Generates vector-perfect SVGs.
- Manifest: JSON bundling for system integration.
- Format: Supports specific "Stencil Plate" rendering for physical application (spray paint/stenciling).
The application utilizes the Cistercian numeral system, a historic cipher capable of representing any integer from 0 to 9999 in a single glyph.
- Quadrants:
- Top-Right: Units (1-9)
- Top-Left: Tens (10-90)
- Bottom-Right: Hundreds (100-900)
- Bottom-Left: Thousands (1000-9000)
- Implementation: Vector paths are mathematically constructed relative to a central vertical staff.
To ensure that "MONOLITH" always looks like "MONOLITH", we do not use Math.random().
- Seeding: String inputs are hashed to integers.
- PRNG: A Mulberry32 implementation provides a stream of deterministic random numbers based on that seed.
- Pattern Logic:
- Bunker: Heavily weighted towards the bottom of the grid.
- Runway: Clears a central vertical channel.
- Perimeter: Densifies the edges of the grid.
- Framework: React 19 (Experimental/RC)
- Language: TypeScript
- Styling: Tailwind CSS + Custom SVG Filters
- Rendering: Pure SVG (No WebGL) for infinite scalability and plot-ready exports.
- Icons: Lucide React
The UI employs a custom SVG noise filter (#noise-grain) applied via CSS to create a textured, tangible surface feel, mimicking high-ISO film or asphalt. The color palette is strictly monochromatic:
- Canvas:
#F7F7F4(Bone White) - Matter:
#1A1A1A(Asphalt Black) - Cement:
#888888(Structural Grey)
This project is designed as an ES-module based React application.
- Clone the repository
- Install dependencies (assuming a standard Vite/React environment):
npm install
- Run local development server:
npm run dev
Note: The current file structure is optimized for direct browser-based ES module loading via importmap.
The visual artifacts generated by this system are designed for tactical identification. Ensure strict adherence to Governance QA protocols before deploying marks to physical hardware.