CarJsShowcase – Interactive 3D Car Viewer Template (Three.js)

Live site: CarJs Showcase
Category: 3D Environment | Product Demo | WebGL Experience
Year: 2025
Location: Sweden


Project Video Preview

Overview

CarJsShowcase is a cinematic and interactive 3D car viewer built entirely with Three.js, designed to provide a professional real-time experience for showcasing generic or custom car models — without any external setup or brand affiliation.
It allows users to freely explore the scene through smooth camera transitions, interact with a dynamic UI (color picker, door animation, front/rear view switch), and enjoy realistic reflections powered by SSR and HDR lighting combined with synchronized sound effects.

The project focuses on delivering an instant, lightweight, and framework-free experience that performs smoothly across both desktop and mobile.
It includes an adaptive performance manager that automatically adjusts pixel ratio based on FPS to maintain cinematic fluidity.
This release represents the first public test stage, where core logic, performance balance, and UI transitions are being fine-tuned before the final version.


Pure Art Studiopure-art.co
by Nour


Features

  • Unified LoadingManager to preload all assets (GLB, HDR, textures, sounds) with a single Start button after loading.

  • Intro sequence with cinematic camera animation and light flash.

  • Dynamic camera switching between front and rear views with smooth transitions.

  • Door animation system synchronized with engine and sound effects.

  • Color picker for car paint with real-time material updates.

  • Lens flare effects using additive blending and fade-in/out logic.

  • Adaptive performance manager (auto pixel ratio and FPS control).

  • Responsive UI with clean controls for Engine, View, Demo, Mute, and About.

  • Ambient audio with loop and mute toggle.

  • Prebaked shadow floor for realistic depth with minimal GPU load.


Technologies

  • Three.js – 3D rendering, GLTF loader, SSR reflections, post-processing

  • GSAP – camera and UI animations

  • Web Audio API – sound control & ambient loops

  • SoftImage / Blender / 3ds Max / Corona / PS / DR – asset modeling and texture baking

  • Figma – UI/UX prototyping

  • Vanilla JS + CSS3 – no build tools, pure front-end


Technical Stack

  • GLTF model.

  • MeshStandardMaterial with tuned reflections and clearcoat paint.

  • HDRI lighting (1K) with baked shadows for realism.

  • Optional LoopSubdivision for smoother geometry.

  • Compressed textures optimized manually for web performance.

  • No frameworks — pure Three.js and native ES modules.


My Role

  • Lead Developer: implemented Three.js scene, modular structure, and adaptive performance logic.

  • 3D Artist: created, baked, and optimized the model and materials with consistent PBR workflow.

  • UX Designer: developed the interface, intro flow, and fallback behavior for low-end devices.


Challenges

Building CarJsShowcase required balancing cinematic quality with real-time performance.
The main challenge was combining multiple heavy elements — GLB models, high-resolution baked textures, HDR lighting, reflections, and synchronized audio — all while keeping everything framework-free and highly optimized for web delivery.

Designing a unified loading pipeline with a single LoadingManager was crucial: it had to preload all assets, fade smoothly into the intro animation, and transition seamlessly into the interactive scene without stutter or delay.

Another major challenge was developing a two-way camera system (front/rear) that synchronizes with door logic, lighting, and UI lockout — ensuring no conflicts during animation sequences.

Finally, the adaptive performance manager was built from scratch to dynamically control pixel ratio and rendering quality, keeping a stable frame rate and a cinematic visual feel on both desktop and mobile GPUs.


Technical Notes

  • Uses GLTF models with baked textures (AO, roughness, emissive).

  • Hybrid lighting setup: baked shadows + HDR ambient environment.

  • Lens-flare sprites and reflections are selectively optimized for performance.

  • All textures compressed & mipmapped for maximum clarity and minimal GPU load.

  • Entire system runs natively in Three.js — no bundlers, no frameworks — focused on maintaining smooth 60 FPS cinematic playback.


By Nour — Pure Art Studio
pure-art.co
LinkedIn

4 Likes