Skip to content
All projects

06Generative AI · SaaS

AI-Powered 3D Avatars & Immersive Experiences

The web front end for a generative-AI product — real-time 3D asset rendering and avatar generation in the browser.

Role
Frontend Engineer
Context
GenVR Research
Primary stack
  • Next.js
  • TypeScript
  • React Redux
  • Three.js
  • WaveSurfer.js
  • Django
AI-Powered 3D Avatars & Immersive Experiences — GenVR Research
01

Overview

The web client for a generative-AI SaaS product that renders 3D assets and generates avatars directly in the browser, backed by a Django API.

02

Problem

Generative 3D and avatar output has to feel immediate in the browser, despite large assets to load and model-backed generation steps that take time.

03

My role

  • Built the front end for the SaaS product.
  • Implemented real-time asset loading and 3D rendering with Three.js.
  • Integrated avatar generation and audio (WaveSurfer.js) against the Django backend.
  • Managed client state with React Redux.
04

Architecture

  1. FrontendNext.js + React application with Redux for client state.
  2. RenderingThree.js scene for 3D asset and avatar display.
  3. MediaWaveSurfer.js for audio waveform handling.
  4. BackendDjango API serving generation and asset endpoints.
05

Technology

Interface

  • Next.js
  • TypeScript
  • TailwindCSS
  • React Redux

3D & media

  • Three.js
  • WaveSurfer.js

Backend

  • Django
06

Engineering challenges

C1

Real-time loading of large 3D assets

Immersive assets are heavy, and a blank screen while they arrive breaks the sense of a live product.

C2

Keeping 3D rendering smooth in the browser

A long-lived WebGL scene leaks memory and drops frames without careful lifecycle management.

C3

Coordinating async generation with the UI

Avatar and asset generation is asynchronous and multi-step on the Django side.

07

Solution

  1. S1

    Real-time loading of large 3D assets

    Progressive loading states around the Three.js scene so it stays interactive while assets stream in.

  2. S2

    Keeping 3D rendering smooth in the browser

    Disciplined Three.js scene setup and disposal so the render loop stays predictable across sessions.

  3. S3

    Coordinating async generation with the UI

    Modelled the workflow in Redux so the interface could reflect each stage without blocking.

08

Performance

  • Work centred on perceived performance — progressive asset loading and rendering so the interface never blocks on a generation step.
09

Product experience