Nils Coutant

Undergraduate Physics student at EPFL and Imperial College London.
This portfolio highlights selected academic and personal projects, mainly involving physics modeling, numerical methods, and programming.

Ideal gas simulation

This project began as a programming assignment during my first year at EPFL. The objective was to simulate an ideal gas using a hard-sphere collision model. Out of personal curiosity, I went beyond the initial requirements by adding numerous features and focusing on graphical visualization.

The simulation qualitatively reproduces key physical principles such as the ideal gas law, Dalton’s law, Brownian motion, and thermodynamic cycles like Carnot and Stirling. While visually accurate, the results are not quantitatively reliable, as I had not yet been introduced to the numerical physics methods required for physically rigorous simulations.

Working on this first simulation taught me the importance of statistical smoothing in dynamic systems. I implemented optimized computation of temperature from collisions and used a moving average to stabilize pressure measurements over time.

(Click any project to get more details)

Simulation of an ideal gas (red: helium, blue: neon, green: argon)

Stirling cycle (colors indicate particle energy)

Particle trajectories over time

Linearity of p and T
Ideal gas law
Dalton law
Carnot Cycle
Stirling cycle

Leveling - Discord Bot

I developed this Discord bot independently before starting my studies at EPFL, using Kotlin and object-oriented programming. The bot rewards user engagement with experience points and leaderboards, encouraging activity in Discord communities. It was officially verified by Discord after a review and reached over 2000 servers before I shut it down at the start of my university studies.

This project taught me how to use APIs and third-party libraries effectively, and introduced me to important considerations around data security and user privacy. I also gained experience in related areas such as debugging, interface design, and branding—including creating visuals with GIMP and writing all in-bot communication in English. It required sustained effort over several months and taught me how to structure a large personal project.

Image 1 Image 2 Image 3 Image 4 Image 5 Image 6 Image 7

Visualizing the determinant of a linear transformation

This shorter project was an introduction to Manim, a Python library for creating mathematical animations. I used it to visualize the geometric interpretation of the determinant and to better understand its properties.

I found that linear algebra often becomes more intuitive when visual connections are made between concepts. This project was a way to explore that dimension and experiment with Manim.

Quantum particle

This project was part of a numerical physics course at EPFL, and focused on simulating the time-dependent Schrödinger equation using the Crank–Nicolson method. We studied the quantum harmonic oscillator and the tunneling effect through a potential barrier.

I found that visual simulations make the behavior of the system easier to understand.

Gaussian wave packet in a harmonic potential

Gaussian wave packet crossing a potential barrier

Wave function

Visualization of the wave packet crossing a potential barrier

Quantum Tunneling

Transmission probability as a function of barrier energy

Tsunami simulation

This project was part of the same numerical physics course at EPFL and focused on simulating wave propagation in shallow water with varying depth. We implemented a three-level finite difference scheme and compared several wave equations under different boundary and topographic conditions.

The simulation reproduced key effects such as amplitude increase near the shore and partial wave reflection. I also compared the numerical results to WKB analytical predictions.

Wave approaching the coastline

Wave predicted by the WKB approximation

Tsunami amplitude

Maximum wave amplitude as a function of position

Wave representation

Wave profile approaching the coast

Newtonian gravitation

This project explored the motion of an asteroid under Newtonian gravity, first influenced only by the Sun, then by both the Sun and Jupiter. We implemented a 4th-order Runge–Kutta integrator with optional adaptive time stepping to compare orbital trajectories and energy conservation.

Trajectories of the asteroid

Asteroid trajectories around the Sun for different time step resolutions

Asteroid in L4

Asteroid trajectory near the L4 Lagrange point of the Sun–Jupiter system

Chaos theory

This simulation models the motion of a magnetic needle in an oscillating magnetic field. It was part of the same numerical physics course at EPFL, using a velocity-dependent Verlet scheme. We explored different dynamical regimes including resonance, phase-space structure, sensitivity to initial conditions, and chaotic behavior with and without damping.

Not all projects from this course are shown here, as some of them were more technical and less suited to quick visual illustration.

Poincaré section showing phase-space structure

Exponential error increase

Exponential divergence of nearby trajectories in the chaotic regime

Physics experiments

During my second year of Bachelor's studies, I conducted 12 physics lab experiments and learnt how to write scientific reports. These assignments focused on experimental method, uncertainty analysis, and scientific communication. I processed data using Python (NumPy, Matplotlib) and learnt how to structure technical documents using LaTeX.

I learnt how to handle experimental data with attention to detail and present my findings clearly using consistent and rigorous documentation standards.

Photovoltaique

Electrical power generated by a silicon amorphous photovoltaic cell as a function of the voltage

Rendement moteurs

Efficiency of a DC motor versus rotation frequency for bipolar and tripolar rotors

Amortissement faible

Free oscillations of a rotating disk with low damping

Oscillations forcées

Oscillation amplitude of a rotating disk as a function of excitation frequency

Spectre rayons X

X-ray diffraction pattern of a NaCl crystal at different acceleration voltages

Spectre hydrogène

Emission spectrum of hydrogen