Hi, I'm Hugo Huang 👋

Research Engineer @ Huawei R&D UK, big fan of Doom

Featured Project

std-raytracer

A comprehensive C++ raytracer built from scratch using only the standard library. Features include Blinn-Phong shading, shadows, reflections, refractions, textures, and tone mapping. Advanced features include BVH (Bounding Volume Hierarchy) for performance, antialiasing sampling, aperture sampling for depth of field, BRDF materials, area light sampling, and multi-bounce path tracing for photorealistic rendering.

About Me

AI Research Engineer at Huawei R&D UK with a passion for Artificial Intelligence, Reinforcement Learning, Natural Language Processing and Computer Vision.

I hold an MSc in Artificial Intelligence from the University of Edinburgh and a BSc in Computer Science from Cardiff University.

My interest is not limited to NLP, CV or RL tho. Like any gamer, I love all visual stuffs!

  • Reinforcement Learning
  • Computer Vision
  • LLM Agents
  • Computer Graphics
Playing Doom with Semantic Segmentation

Playing Doom with Semantic Segmentation

Contribution to Open Source Projects

ViZDoom

Top-5 Contributor

Cited in thousands of papers, ViZDoom allows developing AI that play Doom using only visual info. Intended for research in Computer Vision & Reinforcement Learning. I built automated pipeline for Python binding's type-hinting support, in-engine object categorization (Semantic Segmentation) and improved / fixed various stuffs like seeding behavior, building process (GitHub Action & CMake), documentation & examples, etc.

RL CV Python C++ CMake Doom

sb3-extra-buffers

Author

Created sb3-extra-buffers, a library that adds compressed rollout/replay buffers to Stable Baselines3. Reducing memory usage drastically with minimal overhead via vectorized implementation of lossless compression algorithms. Experiments conducted with Atari games show > 90% memory save with negligible latency. This project is featured in Stable Baselines3's documentation.

Memory Optimization Python PyTorch NumPy
View All Projects

Latest Blog Posts

View All Posts →

RAM expansions are overrated, just compress your observations!

I’m excited to share that my project sb3-extra-buffers has been featured in the official Stable Baselines3 documentation! This small but powerful library addresses a common pain point in Reinforcement Learning: the massive memory consumption of replay and rollout buffers when working with image-based observations.

Banner Image

The Problem: Memory-Hungry RL Buffers

Reinforcement learning is often considered memory-hungry due to the enormous amount of RAM required to store replay and rollout buffers. When you read a cool RL paper and try to reproduce their results, you might find yourself needing to store millions of observations in memory. This becomes especially problematic when working with: