Hi! I'm Marwen

“ALL WE HAVE TO DECIDE IS WHAT TO DO WITH THE TIME THAT IS GIVEN TO US.” – GANDALF

About Me

Software Developer with a Passion for Computer Graphics, Mathematics and Machine Learning.
With two years of experience maintaining production pipelines at DNEG, a leading VFX company, I am deeply committed to the intersection of computer graphics and machine learning.
My journey began with a Master of Science in Information Technology from École de technologies supérieure, where I specialized in optimizing numerical solvers for rigid body simulations. During this time, I collaborated closely with CM Labs Simulations Inc., gaining practical insights into real-time simulations.
My engineering foundation, acquired through a Bachelor of Engineering from Tunisia Polytechnic School, ignited my enthusiasm for these fields. Proficient in Python and C++, I thrive on solving complex problems and creating innovative solutions. Moreover, my strong communication and writing skills in both French and English have been honed through professional experiences, engaging presentations, and effective teamwork.

Let’s continue pushing boundaries and shaping the future of technology together! 🚀🌟

Education

ETS Logo

M.A.Sc (Information Technology)

École de technologie supérieure
Montreal, Canada
2022

TPS Logo

B.Eng (General Engineering)

Tunisia Polytechnic School
Tunis, Tunisia
2019

Ipeit Logo

Associate Degree (Mathematics-Physics)

Tunis Preparatory Engineering Institute
Tunis, Tunisia
2016

Portfolio

Computer Graphics


Building a Ray Tracer from Scratch

This personal project is an exploration of ray tracing fundamentals through the implementation of a ray tracer from scratch in C++. I am using Peter Shirley's Rendering series and various other online resources to develop this project. The current version of the project works on CPU only, there remains much to be added in the future!
Code

Ray traycing

This is a final project for the course "Fundamentals of Computer Graphics", presented by Dr. Paul Kry. In this project, students implemented a CPU-based ray tracing algorithm in Java, using OpenGL library. We implemented ray intersection functions for multiple data types such as plane, sphere, cube, and meshes. In addition, couple of features such as anti-aliasing, depth of field, area/spot lights, texturing, and reflections were added.
Code

Character Animation

The purpose of this project was to use a PD controller to control a skeleton hanged by marionette strings, to imitate a reference character animation. It was part of the "Fundamentals of Computer Graphics" course, presented by Dr. Paul Kry. This assignment was programmed in Java and OpenGL was used for rendering.
Code

Fractals

This project explores the captivating world of fractals and their beauty. I created Julia sets with various starting points to showcase their diversity. The implementation was done in C++ using the GLFW library.
Code

FEM simulation

This assignment is a 2D simulation of finite elements and it was part of the "Fundamentals of Computer Animation" course, presented by Dr. Paul Kry. For the simulation to perform well, we used the backward Euler integration method along with a conjugate gradient solver. This assignment was programmed in Java and OpenGL was used for rendering.
Code


Other projects


Lung cancer tumors semantic segmentation

During my 2019 Mitacs Globalink internship at Université de Moncton, I worked on identifying lung cancer cases using CT scans. I used a tuned version of the 3D-UNet architecture to segment the scans. I trained and tested the neural networks, achieving a 92.1% sensitivity rate.
Report

Solving Knapsack Problem using Genetic Algorithm

I used a genetic algorithm to solve the Knapsack Problem as part of my Operations Research coursework project. The implementation was done in MATLAB.
Code

Irrigation System

This project aims to build a Smart Irrigation System using information about temperature, level of humidity, level of luminosity, level of water in the reservoir. The desired embedded system should be able to take correct decisions about planning irrigation's slot times. The implementation was done in C on an STM32F302R8.
Code