A STEAM CONTROLLER THAT PARKS ITSELF ON ITS CHARGER
A Steam Controller that skitters itself across your desk to its charging puck using nothing but its own vibration motors and a webcam.
by Ray Foss
AutomationAI
- difficulty
- ●●●●○
- time
- a weekend-plus
- license
- MIT
- repo
- repo ACTIVE351 stars
●●●●○ · a weekend-plus · MIT · 351 stars · repo ACTIVE
Jump to section
COMPAREE VERDICT
A delightfully impractical hack: Ray Foss's open-source web app makes a 2026 Steam Controller skitter across the desk on its own haptic actuators until it docks on its magnetic charging puck. An overhead webcam tracks the controller and puck with OpenCV.js optical flow, an in-browser Rust/WASM model handles obstacle avoidance, and WebHID drives the haptic pulses and confirms docking by watching for the charging report. The code is on GitHub under the MIT licence and builds with a single Nix command. The catch: you need the 2026 Steam Controller, a Chromium-based browser and a webcam mounted straight overhead. It saves you nothing in practice, but it teaches slip-stick motion, computer vision and WebHID in one weekend project.
IN THE REPO
GOOD TO KNOW
- —Code, setup and usage steps are in the GitHub README; MIT licence.
- —No parts to build: you need a 2026 Steam Controller with its magnetic charging puck, an overhead webcam and a Chromium-based browser.
- —No firmware changes: everything runs in the browser over WebHID.
Parts to buy
2 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
Steam Controller 2026 doing what controllers don't... autonomously driving to its charger
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Open the GitHub repository (The README covers requirements, setup and usage.)
- 2.Mount a webcam overhead pointing at the desk(The camera must see both the controller and the charging puck from directly above.)
- 3.Start the web app(Install Nix, then run: nix-shell --run "npm install && npm run dev")
- 4.Connect the controller and start tracking(Click Connect Steam Controller to pair via WebHID, place the controller upright, then click Auto-Track.)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- Only the 2026 Steam Controller is supported; the code speaks its specific WebHID reports.
- WebHID only works in Chromium-based browsers, so Firefox and Safari are out.
- The webcam must look straight down at the whole area, which means rigging an overhead mount.
- Slip-stick motion depends on the surface, so expect different behaviour on wood, glass or a desk mat.
- The build uses the Nix package manager; install it first if you want to run the code locally.
Can I use a different controller?
No. The code talks to the 2026 Steam Controller over WebHID using its specific reports for the haptic pulses and battery status, so another controller would need its own driver.
How fast does it move?
It creeps rather than drives: the app fires 70 Hz asymmetric haptic pulses and cuts the pulse frequency by half once the controller is within 150 pixels of the puck, so the final approach is slow and gentle.
Does it work if the controller is upside-down or at an angle?
The README tells you to place the controller on the desk upright, under an overhead webcam that sees both the controller and the puck.
Is there a video of it working?
Yes. Ray Foss posted a short of the controller driving itself to the charger on his YouTube channel, linked on this page.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The controller moves by asymmetrically pulsing its haptic feedback motors and slows the frequency when it gets close for finer control — what surface would you test this on first?
Ray Foss
Ray Foss (FossPrime on GitHub and YouTube) built this auto-docking Steam Controller as an open-source web app, inspired by Very Lazy Pixels' video of driving a Steam Controller with its haptics. It combines slip-stick locomotion, computer vision and browser hardware APIs to solve a problem nobody really has, and that is the fun of it.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.
CompareeTEAM1d ago
Everything is public: the MIT-licensed code is on GitHub with setup steps, there is a hosted project page, and Ray Foss posted a short of it docking itself. You need the 2026 Steam Controller with its magnetic puck, an overhead webcam and a Chromium-based browser.