Jean-Nicolas Brunet


Software engineer

  • Montreal, Canada

While software development remains my main passion, I am constantly in search of new challenges and responsibilities. I am interested in a variety of fields including high performance numerical computing, physic simulations, embedded software development, and software optimizations. This webpage presents an overview of my academic background and professional experience.

Technical skills


  • Modern C++17/20
  • Template-based static polymorphism
  • Eigen3
  • SIMD instructions
  • OpenMP, CUDA, pthread

Unix family

  • ELF file and linkage (LD)
  • GNU Tools
  • Wine
  • Fedora, Debian, Arch


  • CMake
  • AST, re-engineering
  • Compile time optimization
  • Cross compilation
  • Shared library linkage


  • Rebase/merge
  • Submodule/subtree
  • Blame ;-)
  • Github (issues, PRs, workflows)


  • KVM/qemu
  • libvirt
  • PCI passthrough
  • VM based continuous integration (CI)


  • Podman/Docker
  • Pods/Compose


  • IDA
  • Ghidra
  • OllyDbg
  • x64dbg

Simulation skills

Galerkin method

  • Finite element methods
  • Meshless methods
  • Immersed-boundary methods
  • Extended-FEM

ODE integration

  • Explicit/Implicit Euler
  • Trapezoidal rule
  • Leapfrog (central difference)
  • Newmark
  • Runge-Kutta

Nonlinear system

  • Newton-Raphson
  • Quasi Newton (BFGS)
  • Line search optimization
  • Multi-hierarchical methods
  • Gauss-Seidel iterative methods

Linear system

  • (Preconditioned) CG method
  • LDLT / LLT/ LU solvers
  • Pardiso library
  • Skyline


  • Tensor algebra
  • Strain measures (small, Green, Cauchy)
  • Stress measures (Cauchy, FPK, SPK)
  • Hyper-elasticity (St-Venant-K., Neo-Hookean, Arruda-Boyce)

Academic and professional background

C++ Senior developper at OPAL-RT
August, 2021 - Present

As a senior developer, my daily life consists of planning the architecture of new developments, optimizing existing code, project management and technical support for other developers. The software that we design makes it possible to simulate in real time very large electrical networks and controls. The computation is distributed over several high-performance computers.

C++ Research engineer at Mimesis - Inria
October, 2020 - June, 2021

Member of the Inria MIMESIS research staff. Research activities focus on computer assisted medical training, planning and guidance. My responsibilities involve the development as well as the evolution of the real-time computation and data-driven simulation models available within the open-source SOFA framework. Patient-specific applications vary from augmented reality liver surgery assistance to surgical training.

Lead developper of the caribou multiphysics library created initially for my thesis. The library has now more than 20k lines of C++ code, and about 1k lines of Python code.

Doctorate in computer engineering at ICube - University of Strasbourg
June, 2017 - September 2020
Degree: Philosophiae Doctor (Ph. D.)
Selected as part of 16 PhD students for the High Perfomance Soft Tissue Navigation (HiPerNav) European project funded by a Marie Skłodowska-Curie grant. My research focused on the development of new numerical methods for the simulation of soft tissue deformations in the context of augmented reality surgery assistance and was conducted under the supervision of Stéphane Cotin, Research Director at Inria and leader of the MIMESIS team.
Master in computer engineering at École polytechnique of Montreal
September, 2015 - April, 2017
Degree: Masters in applied science(M. Sc. A.)
Joined the Inria MIMESIS team as a research internship. Main responsibilities included the analysis of meshless methods for real-time surgical simulation applications using the well-known SOFA Framework. Recipient of a Mitacs Globalink fellowship.
C++ embedded developer at ERFT Composites
2014 - 2016
Member of the ERFT (Engineering Research and Flow Technology for Composites) R&D team. The focus of ERFT is the development of complex composites products. I was responsible for the implementation of a computerized automaton solution embeddable on different industrial machines. Tasks varied from team lead, software design and low-level software code development.
Java developer at Accenture
2013 - 2014
As a consultant-developer, my job was to develop software extensions and web services for PLM (Product Lifecycle Management) software, in particular in the aerospace industry. Customers came from all over the world and we had access to continuing education in various areas of software development.
Web developer at LG2
2012 - 2013
As a backend developer, I had to develop the architecture of complex web software. LG2 is the first advertising firm in Quebec and develops web software for large companies. I worked in collaboration with a frontend team (css and html) of ten employees and several graphic designers / artistic directors. My main mandate was PHP / MySQL /Javascript development of web softwares and services.
Bachelor in computer science at University of Montreal
September, 2010 - August, 2014
Degree: B. Sc
Web developer at BLSOL
2011 - 2012
In a team with two computer graphic professionals, and being the only developer, I took care of the frontend and backend development of dozens of websites. I also had to take care of several development, staging and production servers.
C++ software developer at GIRO
2009 - 2010
Schedule and route optimization software for various public transport systems. My main tasks was the implementation of various software improvements and bug corrections for different clients all over the world.
Technical degree in computer science at Collège de Maisonneuve
September, 2006 - May, 2009
Degree: T. Inf

Research contribution

One of the main challenges in the field of real-time simulation is the resolution of soft body deformations . This is particularly true in augmented reality applications such as computer-assisted surgery. The process must mimic the behavior of a deformable organ, usually reconstructed from 3D medical images, in real time. It involves the resolution of a complex system of partial differential equations for which the finite element method is generally favored. However, the latter method requires a discretization of the simulated model into a sequence of well- formed geometric elements connected to each other, a tedious process. Indeed, the biomechanical model must often be reconstructed from complex and non-concave surfaces, sometimes even with holes or generated from incomplete or erroneous data.

Several research initiatives have been put in place to identify new methods for solving deformable dynamics that are not only accurate and fast, but also robust enough to manage unpredictable and often non-physical inputs. The first part of my thesis focused on the so-called meshless or element-free methods. With this approach, an approximation of the displacement field inside a volume and the estimation of the elastic forces are done using a simple point cloud based discretization. These points, frequently called particles, are forming the set of degrees of freedom to be solved. Thus, where traditional finite element methods require complex discretization, meshless methods merely require the simulated object’s volume to be filled with points.

The second part of the thesis was dedicated to the traditional methods of discretization with isoparametric elements. However, unlike traditional finite element methods, the concept of fictitious domains was investigated. In this case, the simulated object is immersed in a grid of regular elements. This grid is then used to solve the initial boundary problem. The difficulty of meshing a complex surface using the finite element method is therefore transposed to the handling of grid elements cut by the boundary surface of the simulated object.


Exploring new numerical methods for the simulation of soft tissue deformations in surgery assistance
Jean-Nicolas Brunet
Thesis, Université de Strasbourg, 2020.
Use of stereo-laparoscopic liver surface reconstruction to compensate for pneumoperitoneum deformation through biomechanical modeling.
Andrea Teatini, Jean-Nicolas Brunet, Sergei Nikolaev, Bjørn Edwin, Stéphane Cotin, Ole Jakob Elle
VPH2020, Virtual Physiological Human, Paris, 2020.
Data-driven simulation for augmented surgery.
Andrea Mendizabal, Eleonora Tagliabue, Tristan Hoellinger, Jean-Nicolas Brunet, Sergei Nikolaev, Stéphane Cotin
Developments and Novel Approaches in Biomechanics and Metamaterials. Springer, Cham, 2020. 71-96.
Physics-based deep neural network for real-time lesion tracking in ultrasound-guided breast biopsy.
Andrea Mendizabal, Eleonora Tagliabue, Jean-Nicolas Brunet, Diego Dall’Alba, Paolo Fiorini, Stéphane Cotin
Computational Biomechanics for Medicine. Springer, Cham, 2019.
Physics-based deep neural network for augmented reality during liver surgery.
Jean-Nicolas Brunet, Andrea Mendizabal, Antoine Petit, Nicolas Golse, Eric Vibert, Stéphane Cotin
International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2019.
Corotated meshless implicit dynamics for deformable bodies.
Jean-Nicolas Brunet, Vincent Magnoux, Benoît Ozell, Stéphane Cotin
WSCG 2019-27th International Conference on Computer Graphics, Visualization and Computer Vision. Západočeská univerzita, 2019.
Analyse des méthodes par éléments finis et méthodes sans maillage pour la déformation de corps mous en simulation chirurgicale.
Jean-Nicolas Brunet
Dissertation, École Polytechnique de Montréal, 2017.