Bachelor's degree with great distinction (magna cum laude)
Applied Sciences and Engineering: Computer Science
Bachelor's degree without failing a single class
Applied Sciences and Engineering: Computer Science
Projects
Conway's Game of Life on the GPU
This project implements Conway's Game of Life using the C programming language and the CUDA framework to leverage GPU acceleration for enhanced performance. Conway's Game of Life is a cellular automaton where cells on a grid live, die, or multiply based on specific rules. The implementation involves parallel processing of the grid to update cell states simultaneously, taking advantage of CUDA's ability to handle large-scale computations efficiently. The result is a highly optimized version of the Game of Life that runs significantly faster than traditional CPU-based implementations, demonstrating the power of GPU computing in simulating complex systems.
Sandbox Game
This project is a sandbox game built in C, featuring a dynamic sand simulation optimized for performance. The core of the simulation uses dirty rectangles, a technique that only updates and redraws parts of the screen that have changed. This reduces unnecessary computations and boosts efficiency. To further enhance performance, multithreading is utilized, allowing the simulation to handle multiple operations concurrently. This parallel processing significantly improves the simulation's speed and responsiveness, even with complex interactions between particles. The simulation is visually represented using OpenGL, providing smooth rendering and real-time updates. OpenGL's powerful graphical capabilities ensure that the game runs efficiently while delivering a fluid, immersive experience. This project highlights my skills in low-level optimization, concurrent programming, and real-time graphics rendering. Whether it's creating fast, efficient simulations or crafting interactive game environments, this project demonstrates my ability to combine technical performance with engaging visual experiences.
Automatic model train controlling
This project autonomously controls miniature trains using the Racket programming language. It manages multiple trains simultaneously, ensuring no collisions occur. The system is built around a Raspberry Pi, which acts as the central server. Multiple computers can connect to this server via clients, allowing for distributed control and monitoring. The Raspberry Pi coordinates train movements and implements safety protocols to prevent collisions, making the model train setup both interactive and secure. This project showcases the effective use of Racket for real-time control systems and the Raspberry Pi for central server management.
Platformer game
This project is a platformer game developed in the Racket programming language, featuring a custom-built physics engine that employs Velocity Verlet Integration. The game provides a smooth and realistic movement experience by accurately calculating positions and velocities of in-game objects. The use of Velocity Verlet Integration ensures stable and precise physics simulations, enhancing gameplay dynamics. This project highlights the versatility of Racket in game development and the effectiveness of custom physics engines in creating engaging and interactive game environments.
Raycaster in Assembler
This project is an implementation of a raycaster written in Assembly language. It simulates the trajectory of light rays within an environment composed of convex shapes. By tracing the paths of light rays as they interact with surfaces, the raycaster accurately renders the visual representation of the scene. This project demonstrates the power and precision of low-level programming in Assembly, providing efficient and detailed simulations of complex light interactions within a geometrically defined space.