For Play is a first of its kind 'digital foreplay'. With For Play we allow all humans to play with each other in a sensual way. When entering the site feeldforplay.com you become an orb and get thrown into a virtual space together with a few other wobbly soft orbs. If you look carefully you will see a reflection of yourself on the skin of the orb.
Then the tickling starts. Move around and start bumping into other soft curious orb souls. Tap to tease, make sounds and bounce.
Your orb will flirt, touch, hug, tickle, squeeze and poke... We call For Play a safe, digital foreplay experience.
Developed for Feeld, the first dating app for open-minded couples and singles.
We are entering an era marked by blurred boundaries between the artificial and the physical, a clash between human flesh and rational data. We are massively surrendering our physical selves to the virtual. With For Play we try to focus on the sensual possibilities the digital space offers us.
In times of online conferencing and video conversations a virtual video encounter to play with is only the next logical step.
For Play works on mobile and desktop.
The project consists of a browser and a server based component. The server helps setting up the data and video connection between visitors, the browser is where most of the work happens. We chose three.js as our 3d graphics framework and used React with Redux for the user interface. With these tools we worked on creating a satisfying look and feel for the colliding orbs and connecting multiple users from all over the world in real-time.
Soft Body Collisions
Our custom soft body physics engine is based on the idea that collisions of soft spheres can be divided into two parts ➝ The physical interactions between spheres, meaning forces that push spheres apart in the moment of collision and the visual aspect of deforming spheres in respect to collisions.
While the physical interactions are calculated on the CPU, the deformation of the spheres happens on the usually faster GPU instead of the more versatile CPU with the help of shaders.
For connecting users we use WebRTC. We obfuscate and transform the camera feed of a user with a shader. The server keeps track of all connected users and puts them in virtual rooms. Every user can then setup a peer-to-peer connection with the others. This means video and control data is not send to our server, but directly from one user to another. With a connection in place users can see each others video streams and communicate by tapping and moving, all in real-time.