A collection of from-scratch robotics simulations built in JavaScript and HTML5 — covering graph-search path planning, physical simulation, forward and inverse kinematics, and sampling-based motion planning. Each module was implemented without a physics or robotics library: the math, the renderer, and the search algorithms are all hand-built.
Implemented a heap-based priority queue and the A* search algorithm from scratch to find shortest paths across a grid, using Euclidean distance to the goal as an admissible heuristic.
The visualization shows the frontier expanding outward from the start node, guided by the heuristic, until it converges on the optimal path to the goal.
Modeled a 1-DOF robot arm as a physical pendulum, deriving its equations of motion from Lagrangian dynamics and integrating them forward in time with two numerical integrators: Euler's Method and Velocity Verlet.
Comparing the two integrators side-by-side highlights how energy drift accumulates differently — Velocity Verlet stays far more stable over long simulation runs.
Rendered a multi-link robot arm using 3D geometric matrix transforms and matrix-stack composition to propagate each joint's coordinate frame down the kinematic chain.
Added Axis-Aligned Bounding Box (AABB) collision detection between links — the red wireframe highlights which robot segments are currently colliding.
Solved for joint angles that drive the end effector to a target position using gradient descent optimization, implemented two ways: the Jacobian Transpose method and the Jacobian Pseudoinverse method.
The end effector tracks the cursor in real time as the solver iterates, converging on a valid joint configuration each frame.
Implemented the RRT-Connect search algorithm to plan collision-free paths for the robot through cluttered environments, growing two rapidly-exploring random trees from the start and goal until they connect.
Yellow breadcrumbs mark the explored tree nodes, and the final collision-free path is highlighted in red as the robot executes it.