← BACK TO WORK ARCHIVE
VOXEL.ENGINE // 2026

AMAR PRITHIBI

A Minecraft-inspired procedural 3D voxel sandbox engine built from scratch in Three.js and WebGL.

ROLE

Graphics Programmer & Solo Developer

STACK

Three.js / WebGL / JavaScript / Perlin Noise

YEAR

2026

STATUS

[Active]
01 // Context & Rationale

Context & Background

An exploration into 3D procedural terrain generation, chunk management, and WebGL rendering optimization in browser environments.

02 // Core Problem

Problem Statement

Rendering thousands of individual cube meshes naively in Three.js causes extreme draw call overhead and rapidly drops frame rates below playable levels.

03 // Technical Constraints & Non-Negotiables
01.

Must maintain 60 FPS in modern desktop browsers

02.

Real-time block modification (raycasted block placement and destruction)

03.

Dynamic chunk loading and memory recycling around player position

04 // System Architecture

Architectural Blueprint

A chunked voxel engine where terrain heightmaps are evaluated via 2D/3D Perlin noise and converted into optimized polygonal meshes.

Procedural Noise Generator

Multi-octave noise function creating elevation, biome variation, and cave cutouts.

Chunk Manager

16x16 horizontal chunk column loader handling coordinate transforms and neighbor queries.

Raycast Interaction Controller

Precise voxel boundary hit detection for single-block removal and placement.

05 // Key Technical Decisions

Implementation Choices & Outcomes

DECISION 01

Custom procedural generation in JavaScript instead of loading static pre-baked models

RATIONALE

Enables arbitrary world exploration and dynamic destruction of voxel elements in real time.

OUTCOME

Complete freedom in world shaping and minimal initial asset download.

DECISION 02

Pointer Lock API for first-person FPS style camera navigation

RATIONALE

Provides intuitive, immersive mouse navigation matching standard 3D desktop gaming paradigms.

OUTCOME

Precise look-around physics and natural movement mechanics.

06 // Engineering Tradeoffs

Architectural Tradeoffs

Client-side generation vs server chunk streaming

ADVANTAGES GAINED
  • + Completely serverless, zero hosting compute costs
  • + Instant response to local edits
CONCESSIONS / TRADEOFFS
  • - Heavier CPU utilization on client threads during initial chunk generation
07 // Performance Findings

Optimization Strategies

  • ⚡Chunk-based geometry updates localized to modified regions only
  • ⚡Frustum culling native to Three.js camera rendering pipeline
  • ⚡Optimized animation loop with delta-time capped physics integration
08 // Technical Hurdles

Challenges Solved

  • #Handling boundary conditions when a block on a chunk border is destroyed, requiring adjacent chunk geometry rebuilds
  • #Managing memory garbage collection spikes when rapidly flying across chunk boundaries
09 // Technical Retrospective

Retrospective & Next Iteration

Offloading chunk mesh compilation to Web Workers and implementing Greedy Meshing algorithms to merge coplanar block faces into unified quads would drastically reduce vertex counts.

VISUAL.DATA // PROJECT CAPTURES

Interface & Execution Records

The Wilderness. Roam freely through an infinite procedurally generated voxel world. Rolling hills, dense forests, and shimmering water bodies, all rendered in real-time with Three.js and Perlin noise.
The Ascension. Defy gravity with fly mode. Soar above the terrain to survey the landscape from a bird's-eye view, unlocking a creative perspective on the world below.
The Creation. Place and destroy blocks to reshape the world. Seven material types: grass, dirt, stone, wood, leaves, water and lava, give you the tools to build anything you can imagine.
NEXT CASE STUDY // 003 →

CLASH FORGE