Hello World!
Najman Husaini
Photos taken by me with a Sony A7iii
Summary
I am a Senior Year Software Development student at the University of Utah. My degree has an emphasis on game development, and I have extensive experience with game engines such as Godot and Unreal Engine 5. I am also the programming team lead of Utah Student Robotics, a student organization that competes in the annual NASA Lunabotics competition against 50 teams. Factoring in my coursework and experience as a Teaching Assistant for the School of Computing, I have formidable talent in multiple domains of software development along with the confidence to communicate and collaborate effectively.
Utah Student Robotics
The competition is simple. Move the most amount of material from the excavation zone into the dump zone, and don't hit any rocks on the way. In 2024, we did just that. We moved the most amount of moon dirt (LHS-1) out of all 50 teams from universities around the US and the military. My main contribution was implementing all of the software that allowed 2 pilots to simultaneously commandeer the robot wirelessly and in real time using 6 camera feeds streamed using FFmpeg over RTP. We also received points for being able to dig and dump autonomously using state machines. Due to our robust and noise-resistant communication protocol over UDP, we had the smallest bandwidth usage whilst having enough camera coverage and fidelity to avoid using the arena provided cameras.
Technology
The entire robot is programmed with Rust. tokio
is used as the core model of
execution, and wgpu
with compute shaders written in WGSL
is used
for any GPU programming. To promote rapid prototyping, a feature-complete robotics framework
was developed from the ground up in the footsteps of the Robot Operating System. This
framework was called unros
and is now superceeded by
urobotics
for the 2025 competition. The mission control software is developed in Godot and is used to
visualize the robot's state and direct the robot's autonomous actions.
Game Development
There are about 3.22 billion self-reported gamers around the world, and the market size is about 220 billion USD and only going up. Despite how lucrative this might seem, I studied game development at the University of Utah because I wanted to make games that I would enjoy playing. The first proper game engine I learned was Godot and it is by far the engine I have the most experience in. Here at the U, I have taken courses in Unreal Engine 5 and GameMaker, and am now in Senior Capstone using Unity. Shown below is a game I made in my Traditional Game Development class.
Bola was the first game I made in college. It
was a 2D physics platformer made in Godot that underwent several iterations, many of which I
wrote during my classes. My friends enjoyed it and influenced its development, so of course
the next natural step was to add leaderboards and multiplayer. The leaderboard database API
was implemented in Rust with Rocket
but have since been taken down. Multiplayer was
never finished. I subsequently practiced developing multiplayer with an FPS shooter, also in Godot,
and was able to have 2 players and a spectator fight against one AI, but that was the extent of
it.
Web Projects
Masses
3 Body Problem
A simulation of three gravitational bodies written in Rust and compiled to WebAssembly.
The simulation is done on the GPU using WebGPU through wgpu
and
wgsl
. Rapier2D
was used to implement physics collisions. The color
of each pixel represents which body has the most gravitational influence. For example, the
region near the blue circle is shaded blue as most of the gravity is coming from the blue circle.
However, at the exact center of the canvas at the beginning, the color is black as the gravity
from all 3 bodies cancel each other out.
Thanks for taking the time to check out my website. This may be my largest frontend project so far.
If you are a recruiter, consider checking out my resume.
If you are interested in viewing the source code, check it out here.