Web Development 5 min read ·

From 3D campus to production: lessons from a Three.js portal

Shipping a 3D campus for real students taught us import maps, progressive enhancement and why draw calls are sacred.

From 3D campus to production: lessons from a Three.js portal

Graphics on the web, pragmatically

Shipping a 3D campus inside a student portal was ambitious. Here is what worked and what we would redo.

Progressive enhancement is everything

Our 3D scene gracefully degrades to a 2D illustrated map when WebGL is unavailable, when the device is low-end or when the user prefers reduced motion. Detection is cheap; dignity for users is priceless.

Import maps over bundles

We used import-map-driven module graphs to load Three.js only where needed, shaving hundreds of kilobytes from the initial payload.

Budget your draw calls

Our campus model was optimized to a few dozen draw calls. Additive blending and fancy materials look great in demos and melt framerates in the field.

The takeaway

Users remember the moment a school felt futuristic — but they never forgive a janky scroll. Performance is the first feature.

Three.js WebGL Performance 3D