Bilal Boualem

Studio · real-time 3D, configurators & AI · Metz, France

I build systems that hold up under load.

Real-time 3D, simulation and applied AI — for .

On the bench

Mock-up — 2-axis arm, analytic IK · the planche 03 solver drives six

Discipline
Expert / Lead Real-Time 3D Engineer · Configurators & Parametric Geometry
Independent since
2016 — 10 years
Studio
Metz, France
Languages
FR · EN · AR
Revision
08 · 2026

The rack

The tools

Sharpened 08 · 2026

  • Languages

    TypeScript, JavaScript, C++, Python, GLSL, C#

  • Real-time 3D

    Three.js, Babylon.js, React, GLSL, WebGL, PBR rendering

  • Desktop 3D

    Unreal Engine 5, C++ exposed to Blueprint, Unity / C#, Blender

  • Maths & algorithms

    Parametric geometry, inverse kinematics, BVH, simulation

  • Artificial intelligence

    LLMs, AI agents, prompt engineering, computer vision, OpenCV

  • Infrastructure

    Node.js, PostgreSQL, Docker, Azure, GCP

The plates — 01 — 05

Plate 01 — Maria Tash

Trying on a piece of jewellery that isn't on the ear

20 monthsReact · Three.jsLive · public

Demonstration of the Maria Tash 3D try-on tool, a piece of jewellery placed in real time on an earYouTube — loads on click
View 01 — the tool in production
Exploded view: a stylised ear, with a hoop and a gem drawn off-axis, surrounded by the bounding boxes of the collision BVH. Four numbered callouts.
Fig. 01 — exploded view · ear / jewellery collision
  1. Full Three.js implementation

    Technical ownership of the entire 3D layer inside a React application: scene architecture, render loop, and integration into the purchase funnel.

  2. Accelerated collision detection

    Integrated three-mesh-bvh to test jewellery against jewellery and against the ear in real time — a tree traversal instead of a per-triangle test.

  3. Custom GLSL shaders

    Realistic gemstone rendering: brilliance, dispersion and perceived depth beyond what a standard PBR material can reach.

  4. Real-time ear deformation

    The ear geometry responds to the piece placed on it, so the fit stays believable whatever combination the shopper picks.

Target held 60 FPS on mobile

Engagement length 20 months

Try it Open the live tool →

Client
Maria Tash
Role
3D implementation lead
Stack
React · Three.js · GLSL
Live at
mariatash.com/TASH-Studio
Plate
01 / 05

Plate 02 — IKEA · IPEX

A 2D plan goes in, a manipulable 3D scene comes out

18 monthsReact · Babylon.jsVisuals under NDA

Conversion chain: a dimensioned 2D plan on the left, an arrow annotated parse then build, and on the right the same room in axonometric projection above a scene graph. Three numbered callouts.
Fig. 02 — plan → scene conversion chain
  1. Reusable 2D → 3D module

    Architected a module converting floor layouts into interactive 3D scenes, reusable across configurators.

  2. Scene structure and instancing

    Designed the scene graph and the instancing strategies that hold the conversion budget regardless of how many furniture items are placed.

  3. Ownership of the rendering architecture

    Performance and scalability trade-offs owned end to end — the constraint decides the structure, not the other way round.

Plan → scene conversion (parse + build) < 50 ms

Engagement length 18 months

Client
IKEA · IPEX
Role
3D solutions architect
Stack
React · Babylon.js
Deliverable
Reusable module
Plate
02 / 05

Plate 03 — CMR Surgical

A surgical arm that handles like the real one

6 monthsReact · Three.jsMarketing & training tool

Demonstration of the virtual operating room, manipulating the surgical robotic armYouTube — loads on click
View 03 — the virtual operating room
A three-segment articulated chain with angular limit arcs on each axis, a dashed work envelope and a target marked by a crosshair. Two numbered callouts.
Fig. 03 — articulated chain · angular limits · work envelope
  1. Constrained inverse kinematics

    Solved across the articulated chain with per-axis angular limits: the computed pose is always one the real robot can actually reach.

  2. Real-time direct manipulation

    The user grabs the end effector and the chain follows. The solver is time- bounded so the simulation step holds under load.

Note

Two uses, one environment: commercial demonstration of the Versius, and training. The same fidelity constraints apply to both.

Engagement length 6 months

On the bench above same solver family

Client
CMR Surgical
Role
3D design & simulation
Stack
React · Three.js
Use
Marketing · training
Plate
03 / 05

Plate 04 — Under NDA

Fitting a 2 GB environment into a browser tab

Three.js · DracoClient under NDA

Load comparison drawn to scale: a full-width bar for 2 GB against a six-pixel bar for under 30 MB, dimensioned divided by 68; below, five identical trees under a brace reading n instances, one draw call. Two numbered callouts.
Fig. 04 — payload budget · instancing strategy
  1. Draco geometry compression

    Meshes encoded for minimal network transfer and decoded client-side — most of the factor of 68 between the production source and what the visitor actually downloads.

  2. GPU instancing

    Hundreds of trees, street lamps, benches and buildings rendered from a single geometry per family. Cost tracks the number of families, not the number of objects.

Shipped payload 2 GB → < 30 MB

Frame rate 60 FPS · web and mobile

Client
Under NDA
Role
Rendering architecture
Stack
Three.js · Draco · GPU instancing
Source
2 GB Blender environment
Plate
04 / 05

Plate 05 — Research project

Describe a scene in plain language, watch it build

LLM · Prompt engineeringResearch project

A three-stage chain: an intent in natural language, an LLM interpretation block, then a structured JSON command descending into a real-time scene graph. One numbered callout.
Fig. 05 — intent → structured command → scene
  1. The LLM as an interpreter, not a generator

    The model produces no geometry: it translates a natural-language intent into structured, validatable commands that the 3D engine executes. The scene stays deterministic.

Note

This is the same mechanism as this site's own project intake: describe a need in words, get a structured answer back. The demonstration and the tool are the same thing.

Type
Research project
Role
Sole designer and developer
Stack
LLM · agents · TypeScript · Babylon.js
Status
Prototype
Plate
05 / 05

The commission

How we work

Three shapes of engagement. The rest is decided at scoping, not before.

  • Audit

    Review of an existing 3D application: performance, rendering architecture, technical debt. You come away with the blockers identified and prioritised.

  • Build

    End-to-end design and development, from scene structure to rendering. Past engagements have run from 6 to 20 months.

  • Support

    Ongoing work on a product already live: fixes, optimisation, new features.

Pricing by the day — rate and estimated volume given at scoping

To start scope, assets, a technical contact, the necessary access

3D modelling simple modelling is handled here

First contact describe the project — you get an approach in reply

Start a project

Describe your project

You get an approach in reply, not a boilerplate quote. bilal.developments@gmail.com

Hiring? The candidate summary →