Skip to content

Strata Game Library

Layer by Layer, World by World. The complete game framework for building procedural 3D worlds. Terrain, water, vegetation, sky, physics, AI — everything you need to ship immersive games and experiences in React Three Fiber.
Interactive — drag to rotate

“Build complete 3D worlds in under 1,000 lines of code. Layer by layer, from shaders to game logic — Strata handles the complexity so you can focus on creating.”

🌿

GPU Vegetation

Render 10,000+ instances at 60fps with GPU-accelerated instancing, procedural wind animation, seasonal changes, and biome-based distribution.

Core
☀️

Procedural Sky & Atmosphere

Physically-based atmospheric scattering with dynamic day/night cycles, volumetric clouds, stars, and horizon fog. Beautiful at every time of day.

Core
🌫️

Volumetric Effects

God rays, volumetric fog, underwater overlays, dust particles, and atmospheric haze. Depth and mood for every scene.

Shaders
🎮

Game Framework

ECS architecture, physics integration, AI pathfinding, state management, animation system, and audio engine. Everything to ship a complete game.

Framework

Without Strata

VS

With Strata

// Traditional Three.js terrain setup
// 200+ lines of boilerplate...
const geometry = new THREE.BufferGeometry();
const vertices = [];
const noise = createNoise2D();
for (let x = 0; x < width; x++) {
for (let z = 0; z < depth; z++) {
const y = noise(x * 0.05, z * 0.05) * 20;
vertices.push(x, y, z);
}
}
geometry.setAttribute('position',
new THREE.Float32BufferAttribute(vertices, 3)
);
const material = new THREE.ShaderMaterial({
vertexShader: `// 100+ lines of GLSL...`,
fragmentShader: `// 150+ lines of GLSL...`,
uniforms: { /* ...dozens of uniforms */ }
});
// Still need: LOD, biomes, erosion,
// triplanar texturing, physics...
// With Strata — the same result in 3 lines
import { Terrain } from '@strata-game-library/core';
<Terrain
biome="alpine"
size={256}
resolution={128}
erosion={true}
lod={{ levels: 4 }}
/>
// That's it. Biomes, erosion, triplanar
// texturing, LOD, physics colliders —
// all included and optimized.

10x
Code Reduction
vs. raw Three.js
7
Packages
modular ecosystem
989
Tests Passing
comprehensive coverage
60fps
Target Performance
GPU-optimized
CapabilityWithout StrataWith StrataReduction
Terrain System2,000+ lines~50 lines40x
Water Rendering1,500+ lines~20 lines75x
GPU Vegetation1,000+ lines~30 lines33x
Sky & Atmosphere800+ lines~15 lines53x
Full Game Scene5,000+ lines~200 lines25x

  1. Install the core package and peer dependencies:

    Terminal window
    pnpm install @strata-game-library/core @react-three/fiber @react-three/drei three
  2. Build a complete scene in minutes:

    import { Canvas } from '@react-three/fiber';
    import {
    ProceduralSky,
    Water,
    GrassInstances,
    VolumetricFogMesh,
    } from '@strata-game-library/core';
    function Game() {
    return (
    <Canvas camera={{ position: [0, 10, 20] }}>
    <ProceduralSky sunPosition={[100, 50, 100]} />
    <Water size={200} depth={20} />
    <GrassInstances count={10000} spread={100} />
    <VolumetricFogMesh density={0.02} />
    </Canvas>
    );
    }
  3. Customize with presets or go fully declarative:

    import { TerrainPresets, WaterPresets } from '@strata-game-library/presets';
    <Terrain preset={TerrainPresets.Alpine} />
    <Water preset={WaterPresets.CalmOcean} />

Strata is built in layers — each one building on the last, like geological strata:

Layer 4Presets & Game FrameworkcreateGame(), scenes, modes, AI behaviors
Layer 3React Three Fiber ComponentsTerrain, Water, Sky, Vegetation, Characters
Layer 2Core AlgorithmsSDF, Noise, Marching Cubes, Pathfinding, ECS
Layer 1GLSL ShadersTerrain, water, sky, volumetrics, materials
Layer 0TypeScript Types & UtilitiesType-safe foundation for everything above

Every layer is independently usable. Import just the shaders, or use the full framework — it’s your choice.



“Games should be defined, not engineered. Strata’s goal is to make building 3D worlds as natural as writing a document — declarative, composable, and beautiful by default.”

The upcoming createGame() API will enable fully declarative game definitions:

import { createGame, StrataGame } from '@strata-game-library/core';
const game = createGame({
world: {
terrain: 'alpine',
water: { type: 'ocean', depth: 50 },
vegetation: { density: 0.8, season: 'summer' },
sky: { timeOfDay: 14, weather: 'partly-cloudy' },
},
creatures: [otter, deer, eagle],
modes: { exploration, racing, combat },
state: 'rpg',
});
<StrataGame game={game} />

Experience Strata in action:


Strata is the Games & Procedural division of the jbcom enterprise, building alongside: