Physics Modeling

Physics Programming Projects

In this page I present some of the physics projects I have been working for many years. These projects are part of a simulation environment that I am developping (see below) main objective is to provide a programming environment for the rapid prototyping of physics based algorithm . This project is motivated by my experience in industrial applications particularly in simulation (my experience at CAE Inc.) a world leader in simulation and also at CERCA (technology transfer center) working on CFD simulation of Open Channel Flow simulation (see below).

Development of a scientific framework based on modern software paradigm with emphasis on reusability and extensibility of software components in the field of computational physics.

Scientific Framework (SFX)

Project is based on an Object-Oriented framework with main objective is to provide a programming environment for the rapid prototyping of mathematical/physics based algorithm using classes at a high abstraction level.

The framework is essentially a collection of C++ classes organized in libraries. The design is centered on the concept of modularization and based on “plug-in” technology which allowed all the various modules of the software to interoperate in a decoupled fashion, thus enhancing the software’s extensibility (with respect to problem classes as well as solutions methods) and scalability simultaneously by simply producing a “plug-in” module to support its (new) functionality. It meets a very important requirement in scientific software, namely flexibility in the choice of problems and methods. The current application area is mainly in the Open Channel Flow Simulation (wave simulator, CFD simulation)) and physics 3D (rigid body simulator).

— Project: DamBreak Physics Simulator

Developing a physics library with main application in Open Channel Flow Simulation. DamBreak++ is an application that it is expected to facilitate and accelerate the development of benchmarking numerical algorithm. It provides extreme conditions to assess the numerical stability of the model.

I am currently re-factoring the simulator code to obtain a more scalable and maintainable new generation (first release).

1. Migrating prototype to a new version of the Visual Studio (VS12 with C++11) and then to C++11/14 VS15;

2. Performed manual testing as needed, create test cases and defect recorded;

3. Set up a guideline and policies for automation unit testing, integrate a documentation tool;

4. Working on the development of a GUI to facilitate testing and configure simulation;

5. Software architecture (define system high level abstraction), documentation of these structures;

6. Write scientific report (present simulation result, physics algorithm and software architecture);

Technologies: numerical simulation using Finite, Optimization technique (Numerical programming/data structure), C++, OO

Project: Physics 3D Demo

 Physics 3D library for the simulation of rigid-body. Prototyping environment where user can experiment different implementation or third-party physics library such as Newton Dynamics, ODE (Open Dynamic Engine);

1. Implementing a Math3D library (linear algebra) feature efficient math operation (fast-floating point operation). The library feature mathematical abstraction for manipulating 3D entity easily, an Object-Oriented approach in the implementation of mathematical structure (data), such as rotation, vector calculus;

2. Developing physics rigid body class structure;

Below a snapshot of our developing environment. The simulation system is made of many plug-ins



  • An Example of a C++ class Implementation Of Euler Angles

    Tips and Tricks

    C++ has many features which make this language very attractive for scientific programming, and one of them is the operator overload functionality. I present an example taken from our programming environment (math3D library) that use this to represent a rotation class (Euler angles).
  • IKEA Virtual Reality Extract


    I’m currently working on updating of an interior designer application, used by multinational furniture giant, to a 2nd generation version powered with state-of-the-art technology provided with Virtual Reality (VR) headset.

clients and partners