All these experiments can be found on GitHub GitHub

Level of detail

Implementing a grid with level of detail adapting to the view in WebGL for the Three.js library. The main work lies in GLSL vertex shader where the camera tracking and morphing level is performed.

Demonstration with comparison of different solutions and possibility to select the settings.

A trip under the moonlight

WebGL ocean simulation with a displacement map generation based on fourier transformation, applied on a screen space grid projected in 3D.

Travel on this ocean and this custom environment with the control of a ship. Use the Three.js library.


Color blindness simulator as a web service for web developers and raising awareness.

Selection of the abnormality and view of the web page with a SVG filter altering the color rendering. Load web page via several ways in order to bypass browser safeties.


Basic WebGL water rendering, realistic and lightweight as a module for Three.js.

Rendered with fragment shader without deforming geometry. Taking into account of reflection on the surface and specular light.

Tob the Bot

Tob the Bot managed by a Raspberry PI. Control of two motors via GPIO and web interface.

Node.js backend and communication via websocket.


WebGL runner concept in low-poly. Physics based on a Box2D port via emscripten.

Uses the Three.js library, landscape generator and ocean module.

Landscape generator

WebGL low-poly landscape generator and scalable module for Three.js.

Possibilities of extending with the selection of the noise generation, adding filters, effects and color generation.


Fork of the Tetris game with the add of physics.

Physics based on a Box2D port via emscripten.

A Scalable Web Tetris

Implementation of a modular Tetris game. Strong separation between the view layer and the logic layer, allowing view selection on the fly.

Views realized in ASCII Art / 2D canvas / WebGL.