Terrains & Plots
Everything in SLAAAD is built on a simple spatial primitive: The Headless Grid. Understanding Terrains and Plots is fundamental to building on our platform.
What is a Terrain?
A Terrain is a project-bound container that defines a specific grid environment. It acts as the canvas where your users will acquire and occupy space.
Configurable Dimensions
Define your grid with precision (e.g., 10x20, 50x50, or a single row strip).
Access Control
Control who can buy plots and what the pricing strategy is for each terrain.
What is a Plot?
A Plot is an individual cell within a Terrain. It represents a single unit of ownership and occupancy.
Anatomy of a Plot
The vertical index (0-indexed).
The horizontal index (0-indexed).
The current availability (e.g., OCCUPIED).
Coordinate System
SLAAAD uses a 0-indexed coordinate system. The origin (0, 0) is located at the top-left corner of the terrain.
Occupancy Modes
Each Terrain operates in one of two Occupancy Modes, defined by the occupancyType field. This determines how plots are acquired and how pricing is calculated.
Space-Based Occupancy (Default)
The classic model. Each plot is a persistent spatial cell. A participant acquires a plot outright, and ownership is maintained until the protection period expires or the plot is taken over. Pricing is fixed per plot based on minOfferPrice.
price = terrain.minOfferPrice
Time-Dependent Occupancy
Designed for rotating inventory — digital billboards, in-game ad slots, or any surface where occupancy is measured in time blocks (Pulses) rather than persistent space. A participant bids on a specific time range (slotStartTime → slotEndTime). The platform divides this range into discrete Pulses and calculates the price accordingly.
unitCellDuration
Duration of one Pulse in minutes (default: 7 min)
rotationCycleDays
How many days before the full rotation cycle resets
minBidIncrement
Minimum increment added on top of the pulse sum
slotStartTime / slotEndTime
The requested occupancy window sent in the API call
| Feature | SPACE | TIME |
|---|---|---|
| Pricing unit | Per plot (flat) | Per pulse × duration |
| slotStartTime required | No | Yes |
| Supports overlapping bids | No | Yes (per time range) |
| Protection period | Days (configurable) | Pulse-based rotation |
| Typical use case | Virtual land, ad grids | Digital billboards, ad slots |
Headless Advantage
"By decoupling the grid logic from the UI, SLAAAD allows you to render these plots however you like—as 2D sprites, 3D voxels, or even simple list items."