Portfolio
Last update: September 24, 2026
Last update: September 24, 2026
Driving simulator experiment with two type of control modes
(Python + CARLA + Unity)
Experiment to evaluate whether haptic shared control or traded control better aligns with meaningful human control.
In this control mode, the steering wheel applies forces to interact with the driver, providing indications of the intended direction of the automation.
In this control mode, the steering wheel applies force to automatically operate the vehicle. The driver can interact with the system by exerting force, at which point the system will hands over the driving task to the driver.
Motion planning and motion control (Python + LLM + VLM + Carla)
This video shows a motion planner for a self-driving car at T-intersections with moving obstacles. It demonstrates how paths are generated with the A* algorithm, tracked with Model Predictive Control (MPC), and adjusted to ensure collision avoidance.
This video demonstrates the Human Reasons Supervision Framework. It models three human agents — the driver, the cyclist, and the policymaker — and scores how well the vehicle’s state aligns with their reasoning. If a score falls below a threshold, the framework signals the motion planner to replan the route.
This video shows how the Human Reasons Supervision Framework uses LLM and VLM to decide if an automated vehicle should overtake a cyclist. It weighs different reasons for and against overtaking, then instructs the controller based on the decision. The scenario is simulated in CARLA.
Udacity's Carla Project: Self-Driving Car (C++)
This video shows how self-driving cars combine data from cameras and lidar using sensor fusion. It demonstrates lidar operation, 3D object detection with deep learning, and performance evaluation, plus how fused detections are tracked over time with an Extended Kalman Filter.
This video shows how path planning guides a vehicle and handles emergencies. It covers predicting other vehicles, deciding maneuvers with a finite state machine, and generating safe, comfortable trajectories.
Shortest route (C++)
Code: Github
System monitoring (C++)
Code: Github
Multi-threading (C++)
Concurrent traffic simulation where each vehicle has its own thread to drive
Concurrent traffic simulation with vehicles prioritized at inlet and outlet intersections based on sequence of arrival
Concurrent traffic simulation with vehicles prioritized at inlet and outlet intersections based on green and red light. If red, then the vehicles need to stop. They can only travel when the light is green.
Snake Game (C++)
This is a replica of the famous Nokia Snake game. The player is tasked with eating the yellow food. Whenever the snake eats the food, it grows in length and speed. After the game, the scores will be saved so that we can see who has the highest scores.
Development Tools: Cmake, Git, SDL, C++
Development tools: Raspberry Pi, Python, and PyQT
Our ventilator was tested for durability for two weeks by Clinical Pharmacy Security Agency (BPFK in Indonesia).
Development tools: ArcGIS Dashboard, Python (for object detection with TensorFlow), GoPro (for capturing footage), and telemetry data.
Development tools: ArcGIS Dashboard, Python (for semantic segmentation with PyTorch), satellite imagery.
Development Tools: Python (for RestAPI update automation), RestAPI Service, and ArcGIS Dashboard.
With Twillio API to send whatsapp message to remind employee to fill daily activities.