cogs-clippies-1
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
https://malcolmocean--ce62fa3c8e9411f0867f0224a6c84d84.web.val.run
A game-agnostic server that enables LLM-controlled pieces to play physical board games based on photos of the game state.
- Game Management: Create games with custom rules and piece types
- Multi-Player Support: Multiple human players can join and control pieces
- LLM Integration: Each piece is controlled by an independent LLM call
- Real-time Updates: WebSocket-based live updates as moves are generated
- Photo-based State: Uses multimodal LLMs to analyze board photos
- Human Arbitration: No rule enforcement - humans resolve conflicts
- Hono API server with WebSocket support
- SQLite database for game state persistence
- OpenAI Vision API integration for board analysis
- Parallel LLM processing for simultaneous piece moves
- Game creation and management interface
- Player join and piece control pages
- Real-time move display with WebSocket updates
- Photo upload and turn processing
- TypeScript types for game data structures
- Utility functions for ID generation and validation
/
- Homepage with game creation/game/:gameid
- Join game page/game/:gameid/manage/:managerid
- Game management interface/game/:gameid/play/:username
- Player interface/game/:gameid/clone
- Clone game with same rules
- Game Creation: Manager sets up game rules and piece types
- Player Join: Players join with unique usernames
- Piece Assignment: Players create and configure their pieces
- Turn Processing: Photo upload triggers parallel LLM calls
- Move Display: Results stream in real-time via WebSockets
- Human Arbitration: Players interpret and apply moves manually
- Game IDs: 5-character case-insensitive unique identifiers
- No Authentication: Designed for small playtesting events
- Stateless LLMs: Each turn uses only current board photo
- Conflict Resolution: Handled entirely by human players
- Real-time Updates: WebSocket-based live move streaming