Project Info
spot.party Spot Party is a multiplayer site for people to make Spot (the Boston Dynamics robot dog) dance. You can do this through: Pressing buttons (up/down/left/right/twerk) – this can be done by anyone, with built-in proper consensus resolution and queueing implementation. We added new input methods that allow for a massive simplification of Spot control: Dancing to your webcam and Spot following along live (pose imitation) Gesture control — make certain gestures and Spot will dance along and navigate the land Natural language — you can give commands like “Hey Spot, {play dead, dance, slide to the left}” Earlier, people would have to use the Python SDK, which would need 251 lines of code for a simple stand and sit operation. Now, commanding Spot is as easy as using an HTTP API (programmatically), simple terminal commands, posing the way you want spot to pose, controlling through gestures and natural language.
How we built it
We used the Boston Dynamics python SDK to control Spot, and connected this to our server to sync user actions on the frontend (built in HTML + Vite + React) to Spot. We used LiveBlocks to make our frontend “multiplayer” and used PoseNet to track user position and changes in position. We used HandsfreeJS to embed the model onto the web via WebAssembly for both our pose and gesture clients for easy accessibility. We used OpenAI GPT-4 + Whisper to do transcription, reasoning, and output for certain commands. On the server, we further implemented rate limiting, authentication, queue control, and anti-DDoS via Cloudflare in order to prevent API abuse (and abuse of our wallets).
Challenges we ran into
Get PoseNet to track a user’s dance through the webcam — we switched from Spot directly copying users to user poses/positions translating to a movement for Spot Getting OpenAI to work on Spot was a nightmare Access to Spot was limited, Spot SDK was difficult to use, so we did a lot of guesswork and rigorous code review. Networking challenges - Spot is controlled through the Ubuntu server on its back: Spot Core. We need to send our code onto Spot Core, and only then can we connect to Spot and see its local IP. Finally, to stream instructions from the web, we parse in a cURL'ed list of commands through Railway
What's next
We’re hoping to record videos of Spot dancing along to more songs, and add support for Spot copying a user dancing. We love spot.
⚠️ Disclaimer: We are not affiliated, associated, authorized, endorsed by, or in any way officially connected with Boston Dynamics, or any of its subsidiaries or its affiliates. The official Boston Dynamics website can be found at https://www.bostondynamics.com.
But thank you for letting us make your dog twerk.
spot.party
// temp
Analysis
View
Metric
- 29
- 5
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
7 of 7 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
72 KB
Source files
18
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
aidenybai/spot
21 files · 72 KB · @ 019a5d5
Structure
Interface
4 files · 19%Screens, components and styles rendered to the user.
API & routing
2 files · 10%Request entry points: routes, handlers and controllers.
Application logic
7 files · 33%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- YAML46%
- Python28%
- JavaScript19%
- HTML4%
- Markdown2%
- CSS1%
- Other (1)1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
web/package.json
npm · 7- @liveblocks/client
- handsfree
- million
- react
- react-dom
- +2 more
server/package.json
npm · 3- cors
- express
- express-rate-limit
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.