Skip to content
Affaf Imran
All Work

08

NeoWorlder 3D Web Viewer

Three.js · React Three Fiber · WebGLLead developer

25–30

Active world tiles

NeoWorlder 3D Web Viewer, streamed terrain rendered in the browser, with the viewer's tile and queue counters overlaid

This case study covers the standalone web viewer, not the complete NeoWorlder project.

01Context

A browser-based viewer for a large streamed 3D world, built on React Three Fiber and Three.js.

A world too large to load has to arrive progressively, and a browser gives you far less memory and far less patience than a native client. The engineering here is about what is resident, at what detail, at any moment.

02My Ownership

  • Web Architecture

  • LOD Strategy

  • Streaming Strategy

  • Browser Navigation

  • Browser Performance

  • Asset Delivery

    GLB · KTX2

03Engineering Scope

React Three Fiber and Three.js over WebGL, with GLB geometry and KTX2 textures.

Viewer architecture

  • Web architecture
  • Browser navigation

Large-world handling

  • LOD strategy
  • Streaming strategy

Delivery and performance

  • Asset delivery (GLB, KTX2)
  • Browser performance

04Streaming a Large World

System view / portfolio visualization: a conceptual map of how the systems relate, not the production class graph.

  1. Camera / Navigation
  2. Tile Selection
  3. Streaming
  4. LOD Resolution
  5. WebGL Render

Supporting services

  • Asset Delivery
  • Browser Budget

05What Is Resident, and at What Detail

The viewer keeps roughly 25–30 world tiles active at a time. That number is the whole design: it is what the browser can hold while staying navigable, and everything else (which tiles are chosen, when they stream, what detail they arrive at) resolves against it.

Asset format does much of the work. GLB carries the geometry and KTX2 gives GPU-compressed textures that can be uploaded without an expensive decode step, which matters far more on the web than in a native client where memory is cheaper.

06Scale

25–30

Active world tiles

The viewer holds roughly 25–30 world tiles active at once, with LOD and streaming resolving against that budget as the camera moves through the world.

07Outcome

A working browser-based viewer for the streamed world.

08Visual Evidence

NeoWorlder web viewer, streamed terrain rendered in the browser
Streamed terrain in the browser viewer
NeoWorlder web viewer, a second view across the streamed world

NeoWorlder 3D Web Viewer case study: Affaf Imran