Interactive Web Application · EdTech · Simulation · User Experience
Labo Virtuel Sénégal
A virtual physics and chemistry lab for Senegalese secondary schools: students run the experiments of the official curriculum as interactive simulations.
- Role
- Personal / Academic Project
- Category
- Interactive EdTech
- Core framework
- Next.js
- Year
- 2026

01
Overview
Labo Virtuel Sénégal is a platform of virtual practical work in physics and chemistry, built with Next.js. It follows the official Senegalese curriculum from Quatrième to Terminale S and is currently in beta.
It is a different kind of product from a marketplace or a classic SaaS: the interface itself is the experiment, so interaction, visual feedback and the logic behind each simulation carry most of the work.
02
The Problem
Physics and chemistry are learned by experimenting, but practical work needs equipment, reagents and supervision, and some manipulations are not safe to repeat freely.
Labo Virtuel Sénégal gives students a way to manipulate, test and learn without danger, on the experiments their own curriculum expects them to know.
03
The Solution
A free web application organised the way school is: the student picks a class, then a chemistry or physics experiment from that year's programme, and runs it as a simulation.
Each experiment exposes the parameters that matter. In the projectile lab, for example, the student sets the initial speed and the launch angle, fires, and compares the trajectory with the theoretical range and peak height.
04
My Role
A personal and academic project.
05
Tech Stack
- Next.js
- React
- JavaScript
- Tailwind CSS
- PixiJS
- Matter.js
- Recharts
- smiles-drawer
- PWA
- Vercel
Next.js applied to interactive educational experiences.
06
Architecture
Learner
Browser
Next.js
App Router, React 19
Simulation layer
PixiJS · Matter.js
Vercel
Hosting, prerendered pages
A Next.js App Router application written in JavaScript and styled with Tailwind CSS. The simulations run in the browser: PixiJS renders the scenes and Matter.js provides the physics engine.
Recharts draws the charts and smiles-drawer the molecular structures. The app is a PWA, with a web manifest and a hand-written service worker, and is hosted on Vercel.
07
Key Features
- Five class levels: Quatrième, Troisième, Seconde S, Première S and Terminale S.
- A catalogue of chemistry and physics labs per class — in Terminale S, from acid-base titration and esterification to RLC circuits, projectile motion, interference and radioactivity.
- Adjustable parameters with immediate visual feedback, alongside the theoretical values.
- A quiz attached to the experiment.
- Installable as an app from the browser.
- Free access to every level.
08
Technical Challenges
- Making PixiJS and Matter.js work alongside React rendering without re-rendering the interface on every frame.
- Keeping simulations accurate: displayed values have to match the formulas of the curriculum.
- Making the manipulations usable with a finger on a small screen.
- Writing the service worker by hand and controlling exactly what is cached.
09
Implementation
- Each class and each experiment has its own route, so a lab can be opened or shared directly.
- Scenes are rendered with PixiJS, and Matter.js handles the physics of the mechanics labs.
- Measurements are plotted with Recharts; molecules are drawn with smiles-drawer.
- The PWA relies on a web manifest and a service worker written by hand, without a dedicated library.
- Pages are prerendered and served from Vercel.
10
Screenshots


11
Results
- The platform is live in beta and installable from the browser.
- Five levels are covered, from Quatrième to Terminale S, in physics and chemistry.
12
Lessons Learned
- In a simulation the interface is the content: every slider has to map to a physical quantity the student recognises.
- Giving each experiment its own route keeps the project readable as the number of labs grows.
- Starting from the official curriculum gives a clear scope and avoids simulating for its own sake.
13