Imagine a lush green dog park filled with dogs following you around. You can play fetch with dogs and also customise them to your liking. And all of this inside a subway station in NYC!
- 60-feet long display
- Lush green meadow with realistic grass, trees and terrain. About 20 life-sized dogs running around on screen.
- Pedestrian tracking. Then dog gets assigned to pedestrian and follows him around
- Main interaction was playing fetch with the dog and customizing his look, including his breed, size, fur, using Microsoft Kinects.
- Also had to adapt this same application for smaller, more limited displays, which didn’t have pedestrian tracking and kinect interaction.
- We used Unity3D for implementing this.
- We ended up using 3 projectors for the 60-feet display. So we approached this as a multiplayer LAN game, with 3 different cameras looking at 3 horizontally sequential views in the same scene. We went for 1 server and 3 clients. The server handled the pedestrian tracking and the dog positioning logic, while the clients handled the rendering and the main interaction logic.
- For pedestrian tracking, we used 4 industrial grade lasers mounted at ground level, and cooked up a user detection and tracking system based on triangulation of the person’s detected position.
- We used Microsoft Kinects for the main interaction of throwing balls for the dog to play fetch, and to customize his look.
- I also developed a custom fur shader, enabling each dog to have realistic fur of varying lengths and optimal enough to have it running on all the dogs on screen without any performance problems.
- AI for the dogs needed to be autonomous and extremely robust to account for the various stimulii in the game. I elected to use and Intention-Motion-Action behavioral model. The Motion component would handle the actual physical motion of the dog, the Intention component would decide on its behavioral tendencies based on a variety of internal and external stimuli and the Action component would be responsible for the actual animations on the dog based on the physical and behavioral inputs.