What is the value of telepresence if actual presence is neglected?
During the pandemic, people became accustomed to virtual interactions. Driven by this shift, emerging technologies like Virtual Reality are focusing on translating real-world experiences entirely into the digital realm. Meanwhile, face-to-face interactions in the real world are dwindling. As an example, we often observe families in cafes who are each just looking at their smartphone without any conversation. What is the value of telepresence if actual presence is neglected? Tim Cook once said, if you're staring at smartphones more than into people's eyes, you're doing it wrong. We aim to gently promote humane and analog interaction through calm physical interfaces rather than attention-grabbing displays.
In the Korean language, Hangeul, there's a phrase, "대화를 꽃피우다," which translates to 'blooming the conversation.' It's a beautiful term that likens a conversation to a flower.
With this ‘côte’ in the room, it can subtly make the space more vibrant and delightful.
- demonov01: For final demo of Cyber Physical Systems module happened in 01 Nov 2023. oF, ino, wek files + recreation guide
- testcode: QC tools made for the project: osc communication, serial communication and motor control
- trials: Tried to develop it part-by-part, some succeeded and some didn't. For future works.
- resources: Images and circuit diagram
- appendix: About visionOSC's face datapoints
Check out fritzing file for more information.
- Arduino Nano Every (Arduino Mega 2560)
- Micro Servo MG90S (Black small one) * 6 (5V)
- Logitech C270 (HD 720p, proven to work as a video grabbing webcam) Amazon
- PCA9685 Motor Driver (for power delivery, should be connected to power and arduino)
- oF ofxOsc
- oF ofxGui (for Motor Testing)
- wekinator
- visionOSC go to repo
- touchDesigner (not yet)
- OSC Communication (visionOSC - wekinator - oF)
- Multiple OSC inputs
- OSC input parsing
- Combine multiple OSC messages and send (trying)
- Serial Communication (oF - Arduino)
- Motor Control
- Higher resolution (room to improve)
- Breathing motion
Through several experiments with processing and wekinator OSC input monitor, I mapped out datapoints of LingDong's visionOSC.
Check out visionOscDatapoints folder
- visionOSC & TouchDesigner --multiOSC--> oF --modifiedOSC--> wekinator --class--> oF --serial--> Arduino
- If openframeworks gets data directly from OSC not wekinator, we can make some decision before getting to the wekinator part - for example, maybe we can use certain model in certain condition - and we can exclude non-related data from the original OSC so machine learning part would be much more accurate with faster training/learning
- motor angle data 0-254 is mapped to 0-270 and finally about 1000-2000, but I'm still using 0-254 part so the resolution is quite low.
- nothing happens if there's nobody or one person in the cam view, everything stops. maybe we can add breathing motion when nothing is detected
- getting input from multiple addresses works in oF
- Selecting certain relevant OSC messages and then make them into a new message, sending it to wekinator - receiving and making new message kind of works, but the sending timing makes the message's size vary.
- Simple keypressedSerial is working on both Arduino nano and Mega - but servoAngleSerial doesn't work on Mega.
- ofxOsc OSC Message documentaiton openframeworks.cc
- ofxOsc bundling and parsing forum.openframeworks.cc
- Based on research by H. Segerman Paper
- Hardware design engineering mainly by Jinhak Lee (IDE 23/25)
- Virtual prototyping, visual design and circuit diagram mainly by Poh Asdathorn (GIDv / Keio Media Design)
Cyber Physical Systems, October-November 2023
Advisor Dr. Rebecca Stewart, Charlotte Slingsby, Dr Shayan Sharifi
MSc Innovation Design Engineering
Dyson School of Design Engineering, Imperial College London
This module was funded by Design Education Trust