This is the userpage of dllu. I work on robotics. I enjoy programming, 2D vector graphics, 3D graphics, physics, and photography.

  • 2008—2014 Bachelor of Applied Science, Engineering Physics at the University of British Columbia.
  • 2014—2016 Master of Science, Robotics at Carnegie Mellon University.
  • 2016—2020 Software Engineer, 3D mapping at Ouster, a manufacturer of automotive lidar.
  • 2020-2021 Staff Software Engineer, Tempus Ex Machina, a startup
  • 2021-2023 Senior Software Engineer, Tesla
  • 2023-present Software Engineer, Main Street Autonomy

I contribute mostly to articles related to computing, robotics, geometry, and various niche topics, although I sometimes contribute photos to other articles. Please feel free to add things to the articles listed below or post any questions to my talk page.

Articles I've contributed significantly to edit

Smaller articles I've contributed to edit

Featured Pictures edit

Pittsburgh edit

 
Sony a7R, Sony Zeiss Sonnar T* FE 55mm f/1.8 ZA

Organic Molecules Render edit

 
Created with Rhinoceros 3D and VRay.

BML Traffic Model edit

A globally jammed phase with a traffic density of 60%.
A free flowing phase with a traffic density of 28%.
A periodic intermediate phase with a traffic density of 38%.
A disordered intermediate phase with a traffic density of 39%.

Maze generation edit

30x20 "backtracking" maze generation.
30x20 "prim" maze generation.

Arbitrary selection of other diagrams I've made edit

Coherent point drift edit

These were made with the reference implementation of coherent point drift by Myronenko and Song.

 
Affine point set registration without noise.
 
Rigid point set registration with noise.
 
Non-rigid point set registration with noise.

Orbits of the Swinging Atwood's Machine edit

 
Type A orbits of the Swinging Atwood's machine.
 
Type B orbits of the Swinging Atwood's machine.

The following family of diagrams are generated by my C++ code, which can be found at [1].

 
Orbit with mu = 3 starting from rest.
 
Orbit with mu = 5 starting from rest.
 
Orbit with mu = 16 starting from rest.
 
Orbit with mu = 20 starting from rest.

Monte Carlo localization edit

 
I see a door.
 
I don't see a door.

A robot using Monte Carlo localization to determine its position in a one-dimensional circular corridor containing three doors, using only a sensor that detects whether or not there is a door. The vertical grey bars at the bottom are the locations of the particles which represent the robot's current belief of its position. More particles clustered together means the robot is more likely to be there.

The following family of diagrams are generated by my C++ code, which can be found at [2].

 
1. Initialization.
 
2. Sensor update.
 
3. Resampling.
 
4. Motion update.
 
5. Sensor update.
 
6. Resampling.
 
7. Motion update.
 
8. Sensor update.
 
9. Resampling.

Photography edit

Current gear edit

Camera edit

Lenses edit

Retired gear edit