// 3D development

3D websites: Three.js, WebGL and scroll animation

Practical guides, tool comparisons and notes from building 3D websites: Three.js, WebGL, GSAP, 3D models for the web and keeping it all fast on phones. I build these sites remotely from Leskovac, Serbia; the scope, price and timeline are set in a written offer. Pages in Serbian are on svilenkovic.rs/3d/.

Tutorials

14 pages

Step-by-step guides for 3D on the web.

// Tutorial Three.js Troubleshooting — Common Issues and Fixes Common Three.js issues: black screen, broken lighting, slow performance, glTF won't load — and the fixes that actually work. // Tutorial Three.js Memory Leak Fix — Disposing GPU Resources Three.js doesn't auto-dispose GPU resources — leaving geometries, materials, and textures uncollected leads to memory leaks that crash long-session apps. // Tutorial R3F Debugging — Tools and Patterns R3F debugging combines React DevTools, Three.js debugging tools, and leva for live tweaking — most issues are React lifecycle, not Three.js. // Tutorial WebGL 2 Tutorial — What's Different from WebGL 1 WebGL 2 brings instanced rendering, transform feedback, MRT, and modern GLSL ES 3.0 — what changes if you're moving from WebGL 1. // Tutorial WebGL Context Lost — Detection and Recovery WebGL context-lost errors crash the canvas — handle them gracefully by listening to the contextlost event and re-uploading resources. // Tutorial <model-viewer> Tutorial — Google's Web Component for 3D model-viewer is Google's lightweight web component for embedding 3D models with one HTML tag — works with glTF, includes WebAR. // Tutorial Theatre.js Tutorial — Visual Animation Editor for Web Theatre.js puts a real animation timeline panel in the browser — designers and developers animate together without JSON exchanges. // Tutorial How to Make Particle Effects in Three.js Build particle systems with BufferGeometry — 1K-100K particles depending on shader-vs-CPU approach. // Tutorial How to Make a Shader-Based Website Build site with custom GLSL shaders for hero — Three.js ShaderMaterial + vite-plugin-glsl + uniforms for time/mouse. // Tutorial Learn React Three Fiber — From React Dev to R3F Recommended R3F learning path: build small scenes, integrate drei helpers, learn Suspense for asset loading. // Tutorial 3D Website Deployment — Vercel, Netlify, Cloudflare Deployment options for 3D websites: Vercel/Netlify for HTML/JS, Bunny CDN for 3D assets, Cloudflare R2 alternative. // Tutorial How to Export Blender to GLB Blender to GLB export: enable Draco compression, set up materials properly, validate output before web use. // Tutorial How to Export Cinema 4D to GLB Cinema 4D to GLB: install glTF exporter plugin, configure materials for PBR, export and validate. // Tutorial How to Animate GLB for Web Animation pipeline: animate in Blender NLA, export with glTF, play with Three.js AnimationMixer.

Comparisons

8 pages

Two tools side by side, and when each one fits.

Technologies

15 pages

The libraries and formats behind a 3D site.

// Tech Three.js GLTFLoader — Loading 3D Models Right GLTFLoader is the standard way to load 3D models into Three.js — done right with Draco compression, KTX2 textures, and lazy loading. // Tech Three.js Editor — When to Use It, When to Skip The official Three.js Editor is a free WebGL scene editor in the browser — useful for quick scene building, limited for production work. // Tech Spector.js — WebGL Call Inspector for Three.js Spector.js captures every WebGL draw call your scene makes — invaluable for diagnosing performance cliffs and rendering bugs. // Tech lil-gui — Live Parameter Tweaking for Three.js lil-gui is the modern dat.gui replacement — drop sliders next to your scene to tune materials, lights, and shader uniforms live. // Tech Ammo.js Physics in Three.js — Bullet Physics for Web Ammo.js is the WASM port of Bullet Physics — full-featured rigid body simulation for Three.js scenes that need it. // Tech DRACOLoader in Three.js — Compressed glTF Meshes DRACOLoader unpacks Draco-compressed glTF meshes 50-80% smaller than uncompressed — essential for production 3D web. // Tech React Three Fiber Portfolio Template — Custom Build A custom R3F portfolio built for your brand, with proper scene composition, scroll-driven storytelling, and React-native architecture. // Tech @react-three/postprocessing — Effects for R3F The R3F-native bindings for the postprocessing package — bloom, FXAA, vignette, depth-of-field, all as React components. // Tech @react-three/rapier — R3F Physics with Rapier The R3F integration of Rapier physics — declarative rigid bodies, colliders, constraints as React components. // Tech WebGPU in Three.js — Modern Renderer for 2026 Three.js v0.158+ ships a WebGPU renderer that auto-detects browser support and falls back to WebGL — same API, better performance. // Tech Babylon.js Portfolio Examples and Templates Babylon.js portfolios are rarer than Three.js — when they exist, they tend toward technical demos rather than design-led showcases. // Tech PlayCanvas Developer for Hire PlayCanvas specialist for projects needing a real-time 3D web engine with editor — strong for web games and interactive product configurators. // Tech leva — Live Tweaking Hook for R3F leva is the React-native live tweaking library — the modern alternative to dat.gui and lil-gui for R3F development. // Tech Swup — Lightweight Page Transitions Alternative Swup is a lighter alternative to Barba.js — same SPA-style transitions, smaller bundle, simpler API. // Tech lygia Shader Library — Reusable GLSL Functions lygia (patriciogonzalezvivo/lygia) is a GLSL function library — noise, color, lighting, math, all reusable across projects.

By industry

5 pages

Where 3D helps a particular kind of business.

Use cases

1 page

Concrete things a 3D site can do.

Services

5 pages

What I build and what you get.

Scope and pricing

2 pages

What drives the scope; the price is in a written offer.

Working with me

1 page

How the work runs with clients abroad.

Want 3D on your site?

Tell me what you need and I will send you a written offer with the scope and the price.

Call