Inspiration

A Twitch community has familiar names, recurring jokes and shared moments. VELNEST gives those names a small place in the broadcast: a shared lounge where viewers can see one another, move around and react together.

What it does

Signed-in viewers choose one of three simple humanoid characters, Riff, Arc or Muse, and add headphones, a backpack or a lightstick. They can walk around furniture, wave, cheer, dance and reserve a lounge chair. Reactions combine authored character animation with brief floor rings and confetti. The streamer displays the same room through an OBS Browser Source.

The dark esports lounge combines violet/cyan neon, leather seating, plants and gaming equipment. Four CC0 furniture sources from Poly Haven have recorded licenses and checksums. Codex-authored Blender scripts assemble the editable set; the browser uses a 2.38 MB compressed model, self-hosted decoders, material reflections and restrained bloom.

The room server owns movement, reactions and seat reservations. A broadcaster can remove a participant for five minutes; the timeout follows the verified Twitch identity across tabs, reconnects and fresh logins. Other viewers can continue watching.

How it was built with Codex

Codex helped develop the TypeScript application, React controller, Three.js room, Fastify/Socket.IO server and shared interaction contracts. It also wrote Blender Python scripts for the lounge, three rigged characters, interchangeable props and six animation clips per character. The repository includes the editable Blender files and exported assets.

Design skills guided the visual direction, interaction details and browser review. HyperFrames was used for an editable 12-second motion study built from the actual 3D assets. That study is separate from the required live Twitch demonstration.

The Twitch integration uses server-side authorization-code OAuth, token validation and the Get Users API. Open admission requests no additional scopes and lets every authenticated Twitch viewer join. Browser cookies contain an opaque session identifier; tokens remain on the server. Only the configured broadcaster can manage the room. An optional subscriber-only mode uses Check User Subscription for affiliate/partner channels.

Challenges and lessons

Character motion needed to remain consistent with a shared room. Walking routes avoid furniture, seat claims are resolved on the server, and a late OBS connection receives the current room snapshot. Sitting uses an authored pose rather than a visual shortcut. Reduced-motion settings preserve meaningful state while suppressing celebration movement.

Separating the initial interface from the 3D renderer, self-hosting fonts and making offline status explicit improved the reliability of the experience. Tests cover actual exported animation clips, pathfinding, concurrent seat claims, authentication and moderation. Browser review also exposed and corrected confusing connection messages and mobile layout issues.

Current status and next steps

The public repository offers an explicitly labeled demo mode. The broadcaster completed real Twitch authorization and demonstrated character entry, accessory changes, movement, reactions and lounge seating through OBS. An authorized public demonstration ran on meemokiller on October 29, 2026; the Twitch player visibly received the room and its live title. A 188-second local recording of that broadcast was saved and decoded successfully. All twelve QA suites pass locally and on Windows/Linux CI. Viewer admission and moderation also have simulated-provider coverage. A second real viewer account and a physical-phone walkthrough remain unverified.

Share this project:

Updates

Submission history