BARKAI LAZIMY

Engineering Student | University of Wisconsin Madison

See background
Profile photo
Barkai Lazimy
Student — UW Madison
Engineering Physics & Mathematics

About me

I am a highly motivated and creative thinker who loves math and science. When I am not busy studying engineering at UW-Madison, I build independent projects using AI algorithms, GPU programming, Engineering, electrochemistry, physics simulations, and more. I hope to use optimization and mathematics to engineer solutions to the world's biggest problems.

Topology Optimization for Fluid Flows using Machine Learning

Optimization · PyTorch · Fluid Dynamics

I began this project last year, aiming to develop an algorithm that generates optimal topologies under specified constraints in fluid flows (for example, aircraft geometry or propeller design). This problem is significantly harder to solve than traditional structural topology optimization because fluid simulations are not differentiable, unlike FEM simulations. My solution was to train a neural network to predict the results of a fluid simulation for a given topology and then optimize using topological gradients. This involved constructing a large dataset of fluid simulations for various shapes using C++, which took several days to complete on my computer. I trained a convolutional network (CNN) to predict fluid forces using Python and Tensorflow, and later converted it to PyTorch. (Right is an example of the algorithm optimizing a 2d solid to generate maximum torque in a fluid flow.)

Project 2 screenshot
Topology optimization for maximum torque generation

Layer Optimization for Anisotropic 3D Printing

JAX · Python · Finite Element Method · Optimization

Traditional planar fused filament 3d printing produces parts that are weaker in certain directions (anisotropic), which often leads to failure under mechanical loads. This algorithm analyzes the structure of a part to generate an optimal layer pattern that is significantly stronger. It first analyzes the parts deformation using a custom differentiable anisotropic Finite Element Method simulation implemented in JAX. The direction of the filament at every element is parameterized to a layer angle field, which is then optimized for minimum compliance using Stochastic Gradient Descent (SGD) on the FEM gradients. The optimal layer angle field is then passed into the slicing algorithm, which produces layer lines that follow the specified angles and smoothly interpolate between elements. A major goal of this project is to design stronger parts that can be printed on any traditional comercial 3d printer, rather than experimental non-planar printers which can print at any angle. This algorithm can constrain the optimized angles to accommodate micro non-planar printing, taking advantage of the z-axis to create tilted layer lines.

Layer optimization for anisotropic 3D printing
Optimized layer lines for an example part under vertical loading
aircraft design visualization
Some data visualizations for the aircraft optimization project

Aircraft Design for Payload Optimization using Genetic Evolutionary Algorithm

Python · Genetic Algorithm · Aerodynamics

This algorithm uses publicly available wind-tunnel data on thousands of airfoil geometries to evolve optimally efficient flying-wing aircraft. Originally designed for the SAE aero competition, in which aircraft are scored by the number of cylindrical water bottles they can carry. This algorithm simulates thousands of initially random aircraft designs and selects those with the best flight performance and payload capacity. The selected aircraft designs are then mutated and mixed to form future generations, and the process continues until convergence on an optimal solution. The simulation can accommodate many different airfoils along the wingspan and characterizes important features like passive stability and bending moments along the wing in addition to lift, drag, payload, and more.

Project 1 screenshot
screenshot of a test scene I rendered in the browser using my engine.

Custom Graphics Engine using Ray Marching on the GPU

WebGPU · GLSL · JavaScript

The goal of this project was to create a fully functional graphics engine based on ray marching that runs in real time in the browser using GPU compute shaders. As opposed to traditional algorithms, which use triangles (rasterization or raytracing), this engine uses signed distance functions to describe 3d shapes. This allows shapes with high levels of detail to be rendered without excessive memory usage or performance costs. To accomplish this, the engine uses a buffer that stores distance functions in a binary format and sends them to the GPU to be computed on a per-pixel basis. In environments where memory is limited or loading times must be short, like webpages, this technique is advantageous.


All the shapes on screen were defined using mathematical functions rather than triangles. The reflections and diffuse lighting are computed using the same methods as traditional raytracers.

Echolocation Algorithm and Audio Simulation

JavaScript · WGSL · Python

Algorithm Development

I was inspired by echolocation in nature to create an algorithm that can reconstruct environments using only the reflections of acoustic waves. To develop this algorithm, I needed noise-free data of physically accurate acoustic reflections in many different environments. To accomplish this, I wrote a GPU-based numerical simulation of the classical wave equation from scratch. I used the data from this simulation to reconstruct the environments I had tested virtually. Eventually, I aim to expand this algorithm to three dimensions to map real-world environments.

Sound wave simulation
Wave simulation
Reconstructed environment
Raw wave Data
Algorithm visualization
Reconstruction

Quantum Schrodinger Equation simulation on the GPU

Optimization · PyTorch · Fluid Dynamics

After experimenting with the relatively new WebGPU compute shaders, I created a quantum simulation that runs entirely in the browser from scratch. This served as a useful learning tool that helped me gain an intuition for the complex math of partial differential equations. Right is a screenshot of the simulation; the interesting visual checkerboarding pattern is due to numerical instabilities caused by large time steps and the simple Euler's method approximation. I was able to avoid these instabilities with smaller time steps, but I find these error patterns fascinating.

Quantum Simulation - Unstable
Quantum Schrodinger Equation simulation with numerical errors developing
Project 1 screenshot
Real-time neural network simulation

Interactive WebGPU Neuron Simulation

WebGPU · GLSL · JavaScript

A real-time procedural demo showcasing an excitable media that replicates the behavior of neurons by learning via the Hebbian Learning principle. This project was built using WebGPU and GLSL to simulate thousands of neurons in the browser, all in real time. Unlike a traditional neural network, this model continuously models activation potential over time, allowing neurons to fire at different times. Initially, the randomly connected network exhibits chaotic activation patterns as each neuron's activation potential spikes and triggers surrounding neurons. For a short period after each neuron fires, it learns by strengthening connections with other neurons that have recently fired, similar to the behavior of real human neurons. Eventually, the network becomes fully connected, and clear activation waves begin to form, similar to waves observed in human brains. While this model is extremely oversimplified with much lower connectivity than the human brain, models like this may help us create more complex machine learning algorithms. Similar models with higher connectivity and more complex learning principles could learn continuously as they operate, as opposed to traditional one-time training.

Security System with Real-Time Gun Detection using Computer Vision

Machine Learning · Hardware · YOLOv8 · Python
1st Place - State DECA Entrepreneurship Innovation Plan Competition

Prototype Development

I designed and built a prototype security device utilizing a combination of machine learning and custom hardware. The device used a microcontroller and webcam to process video using a YOLOv8 real-time object detection model. I wrote a Python script that locks the 3d printed turret onto any threats in order to engage with deterrent mechanisms.

Design process
Design
Prototype in action

Business Plan & Competition

In addition to the prototype, I created a detailed business plan for the product, leveraging NVIDIA GPUs for edge computing solutions. This comprehensive plan won first place in the state DECA innovation plan competition. This experience gave me valuable insights into the business models and perspectives of NVIDIA customers who implement edge computing at scale, and demonstrated the commercial viability of intelligent security solutions.

Design & Rendering

I created detailed 3D renderings and visualizations in Blender for the product proposal, showcasing the final design and form factor for stakeholders and competition judges.

3D turret isometric view
Isometric view
3D turret front view
Front view

Electrochemical Carbon Capture Device - Business Plan and Prototype

Electrochemistry · Hardware · CAD · Blender

Prototype Development

I designed and built a low-cost carbon-capture device utilizing a novel electrochemical process to recycle sodium ions with a porous ceramic membrane. I proved the concept's viability by building a prototype from commonly available materials and testing CO2 concentrations. This project aimed to address CO2 emissions from hard-to-abate industries such as steel and cement production.

Business Plan & Competition

In addition to building a physical prototype, I created a detailed business plan for an entrepreneurship competition. We proposed two products: one for capturing CO2 directly from the air (Direct Air Capture) and one for extracting CO2 from industrial processes (Post Combustion). The post-combustion model utilized electromagnets in combination with the electric field created by the cell to move water orthogonally through the system with no moving parts. The magnetohydrodynamic system was designed to dislodge bubbles, speed up absorption, and increase efficiency. A link to the full proposal with an in-depth explanation is below.

3D turret isometric view
Direct Air Capture Product
3D turret isometric view
Post Combustion Product