Skip to content

increasinglyHuman/Splatter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splatter — Dynamic Terrain Painting

SPLATTER

Design Phase poqpoq World Seven-Layer Compositor MIT License

Paint the world. Watch it breathe. Trails wear. Moss creeps. Rivers carve. Fire scorches.
The terrain texture authority for poqpoq World.

Terraformer · Dungeon Master · Animator · Skinner · Landscaper · World


The Vision

Most game engines paint terrain once. An artist opens a brush tool, stamps grass here, rock there, saves, ships. The ground is dead — a photograph of a moment that never existed.

Splatter takes a different approach. Terrain in poqpoq World is alive. Paths wear down under foot traffic. Moss creeps into the cracks of old cobblestones. Torch fire scorches the dungeon floor. Rain softens hard earth to mud. An AI companion plants a moon seed, and over fifty metres the soil darkens, crystallizes, glows.

None of this is hand-painted. None of it is random. It's systemic — a seven-layer compositor where each layer has a clear owner, a clear purpose, and a clear relationship to the world simulation running beneath it.

Splatter is the painting tool, the compositor architecture, and the creative interface that ties it all together.


The Seven-Layer Stack

Every texel on the ground is the result of seven layers evaluated in order. Some are baked at world creation. Others change every frame.

Layer Name What It Does When It Changes
1 Height / Slope Mask Steep slopes get rock. Flat land gets grass. Physics. World generation only
2 Base Noise Natural variation — no two patches of dirt look the same World generation only
3 Biome Overlay Seasons shift. Deserts creep. Snow lines rise and fall. Slow drift on game-time
4 Path Network Trails, roads, rivers carved into the landscape When paths are edited
5 Object Influence Torches scorch. Water seeps. Trees shade. Moon seeds glow. When objects move or change
6 Maker Paint Your brush. Your rules. Direct creative control. When you paint
7 Transient FX Footprints. Spell burns. Rain puddles. Gone in minutes. Every frame, with decay

Layers 1-2 come from Terraformer (the heightmap editor). Layers 3-5 and 7 are evaluated at runtime by World (the game engine). Layer 6 is Splatter's domain — the maker's creative canvas.


What Splatter Does

Splatter is a standalone micro-app launched as a sandboxed iframe from three different hosts — Terraformer (during world design), World (during live play), and Dungeon Master (for indoor surfaces). It communicates with its host via a postMessage API and has no engine dependencies.

Three Tiers of Creative Access

Tier For Tools
1 All makers Brush, erase, smear, opacity — direct painting
2 Experienced builders Rule composer — slope > 45° → rock, height < 5m → sand
3 World owners & admins Physics painter — author object influence halos, review AI proposals

Key Components

  • Layer Compositor UI — visual stack of all seven layers with blend controls
  • PathStyleEditor — per-path material assignment, edge moss, wear simulation, intersection rules
  • AI Proposals Panel — review, approve, or reject terrain changes proposed by AI companions
  • Preset Library — shareable texture rulesets published to the maker community
  • TextureCatalog — shared browsable palette of PBR materials used across all BlackBox tools

Architecture

                    ┌─────────────────────────────────────┐
                    │           HOST APPLICATION           │
                    │   (Terraformer / World / DungeonMaster)  │
                    └──────────┬──────────────────────────┘
                               │ postMessage API
                    ┌──────────▼──────────────────────────┐
                    │            SPLATTER                  │
                    │  ┌────────────────────────────────┐  │
                    │  │     Layer Compositor UI        │  │
                    │  │  ┌─────┐ ┌─────┐ ┌─────────┐  │  │
                    │  │  │Tier1│ │Tier2│ │  Tier3  │  │  │
                    │  │  │Brush│ │Rules│ │ Physics │  │  │
                    │  │  └─────┘ └─────┘ └─────────┘  │  │
                    │  ├────────────────────────────────┤  │
                    │  │      PathStyleEditor           │  │
                    │  ├────────────────────────────────┤  │
                    │  │    AI Proposals  │  Presets     │  │
                    │  └────────────────────────────────┘  │
                    │                                      │
                    │  TextureCatalog (shared module)       │
                    └──────────────────────────────────────┘

Cross-Team Coordination

Splatter sits at the intersection of four teams. See comms/Comms.md for the running coordination thread and docs/ for each team's planning documents.

Team Repo Relationship to Splatter
Terraformer BlackBoxTerrains Provides baked Layers 1-2, spline metadata, path distance fields
World poqpoq-world Hosts Splatter iframe, runs runtime compositor, consumes Layer 6 data
DungeonMaster BlackBoxDungeonMaster Consumes TextureCatalog for dungeon surface materials

Project Status

Splatter is in design phase. The four-team ADR process is active. No implementation has begun.

Current Progress

  • ADR-001 — Terrain Texture Authority & Module Topology (Accepted)
  • Cross-team planning documents exchanged (all four teams)
  • Layer ownership and module boundaries agreed
  • ADR-002 — Path System / SDF Contract (Terraformer drafting)
  • ADR-003 — postMessage API & Module Boundaries (Splatter drafting)
  • ADR-004 — Maker Three-Tier Access Model (Splatter + World)
  • ADR-005 — Dirty-Flag Evaluation & Spatial Tracking (World)
  • ADR-006 — Event Log Schema & AI Terrain API (World)
  • Shared texture format agreement (all teams)
  • Phase 1 implementation begins

Documentation

Document Description
ADR-001 — Terrain Texture Authority The foundational architecture decision record
ADR-001 — Remaining Work Open questions and follow-on ADRs needed
Cross-Team Coordination Terraformer team's coordination plan
World Team Division of Labor World team's proposed responsibilities
DM Team Recommendations DungeonMaster team's consumer-focused analysis
Comms Hub Running cross-team coordination thread
How Terrain Painting Works (ELI5) Progressive introduction to dynamic terrain texturing

Learning Resources

New to terrain texturing? Start with How Terrain Painting Works — a progressive guide that builds from "what is a splatmap?" to the full seven-layer compositor model.


Part of the BlackBox Creative Suite

Tool Purpose
Terraformer Heightmap editing, terrain generation, path curves
World AI-first metaverse — the runtime engine
Dungeon Master Living dungeon editor with octile grid system
Animator GLB animation editor with IK
Skinner Vertex weight painter
Landscaper Procedural world population
Avatar Character creation tool


License

This project is licensed under the MIT License — see the LICENSE file for details.


Built for poqpoq · The ground remembers everything.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors