Mohamed Amine Hajji / Projects

EVMirror

A simulation of electric cars and the public stations they charge at. Drop a pin on the map to see how a new public charging station would be used, and how it affects the stations around it (for now, it covers Paris only).

Open EVMirror · How it works

I built the simulation engine in Python: 99,126 electric cars follow daily routines on real OpenStreetMap roads and compete for the 10,155 public charge points that actually exist in Paris and its inner suburbs. How drivers choose where to charge is calibrated with CMA-ES on real occupancy data from public chargers.

The web app makes the simulator easy to use: no code and no setup, just a map in the browser. Evaluating a spot runs the same cars and days with and without the new station, and the answer comes back as one sentence and four figures. The days without the station are the same for every spot, so they are simulated once and stored, and each evaluation only computes the run with it.

Stack: Next.js, MapLibre GL, Python, FastAPI, TypeScript, React, Tailwind CSS, Node.js, Express, PostgreSQL, Kysely, Zod, pandas / NumPy, Numba, OR-Tools, CMA-ES, OpenStreetMap, Vitest, Playwright, nginx, pm2