Projects

UniEnv: Unifying Robot Environments and Data APIs
UniEnv: Unifying Robot Environments and Data APIs

Modern robotics research stands at a point where the pace of algorithmic innovation is often throttled by the fragmentation of the ecosystem. While the demand for general-purpose robot learning requires rapid evaluation and training across diverse scenarios, the current landscape is deeply divided. Researchers are frequently forced to navigate a disjointed collection of simulation environments, real-world hardware interfaces, and static dataset formats, each operating within isolated silos. This fragmentation is further compounded by the incompatibility of underlying computational frameworks. The divide between major tensor backends—such as PyTorch, JAX, and NumPy—often creates artificial barriers, forcing tedious data conversion and creating significant overhead during training loops. Furthermore, the lack of a standardized interface between disparate robot data formats (e.g., Open-X-Embodiment, Droid) and active environments complicates the utilization of large-scale pre-training data. UniEnv is designed to directly tackle these challenges by providing a unified, high-performance toolset for the next generation of robot learning. It serves as a drop-in replacement for standard Gymnasium interfaces but extends functionality to support multiple tensor backends seamlessly. By leveraging the DLPack protocol, UniEnv enables zero-copy data passing between frameworks, effectively removing the friction between simulation, real-world hardware, and deep learning libraries. With a suite of built-in utilities—including optimized replay buffers and environment wrappers—UniEnv offers a single, cohesive API that bridges the gap between diverse data sources and execution backends, empowering researchers to focus on solving complex control tasks rather than fighting integration overhead.

Oct 1, 2025

EECS151 RISC-V FPGA
EECS151 RISC-V FPGA

I implemented a 3-stage pipelined RISC-V CPU with the Verilog HDL which is tested an AMD Xilinx PYNQ-Z1 board with a core clock frequency of 75MHz.

Jan 1, 2024

CS162 PintOS
CS162 PintOS

I implemented part of an operating system called Pintos.

Jan 1, 2024

ROAR_PY
ROAR_PY

I led the training and evaluation of a RL-based autonomous racing policy in the Carla Simulator. The agent can drive at 150 km/h in the simulator. In the process, I led the development of ROAR-PY: A streamable, gymnasium compatible control suite that unifies control of vehicles / reading of sensors in simulation and in real world for any autonomous vehicles.

Jun 15, 2023

CS184 Graphics Projects
CS184 Graphics Projects

For UC Berkeley’s CS184: Computer Graphics and Imaging course, I worked on implementing a 2d rasterizer, 3d Bezier curves and surfaces, algorithms to manipulate half-edge meshes, mesh up-sampling by loop subdivision, ray-tracing renderers for various materials, and a clothing simulation mod for Minecraft.

May 10, 2023

DarBots
DarBots

I was very fortunate to gain early exposure to robotics through the DarBots program at Darlington School. I competed as the team captain in the FTC robotics competition for two years.

May 20, 2020