Skip to content

Conversation

@yondonfu
Copy link
Contributor

@yondonfu yondonfu commented Jan 13, 2026

Demo

2026-01-13.11-40-20.mp4

Summary

  • Add controller input system for WASD keyboard and mouse capture via Pointer Lock API
  • New controller-viz pipeline for testing/debugging controller inputs
  • Frontend hook (useControllerInput) captures input and sends via WebRTC data channel
  • Backend accumulates inputs pygame-style (keys=latest state, mouse=summed deltas)

Test plan

  • Load controller-viz pipeline
  • Click video to enable pointer lock
  • Verify WASD/arrow keys light up directional indicators
  • Verify mouse movement tracks red dot across canvas
  • Press ESC to release pointer lock

Out of scope

  • The logs spam "Output queue full..." with the controller-viz pipeline and will do so for any pipeline with a very high throughput (eg 60 fps). This will be addressed outside of this PR by updates to the consumer-producer pattern in the frame/pipeline processor logic.

🤖 Generated with Claude Code

Copy link
Collaborator

@ryanontheinside ryanontheinside left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Signed-off-by: Yondon Fu <yondon.fu@gmail.com>
@yondonfu yondonfu merged commit 7acf5d6 into main Jan 14, 2026
5 checks passed
@yondonfu yondonfu deleted the scope-wasd-mouse branch January 14, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants