SuperMesh - formally SüperMësh - is a distributed camera system for object and motion tracking.
When starting from scratch:
The camera cluster computers need to get a fresh install of the latest Ubuntu Studio, with SSH enabled.
Each computer needs to get the proper IP address assigned through DHCP.
The addresses can be found in the bee.ini file.
The control machine is the user's own laptop. These setup steps enable the user to setup the complete cluster of Linux computers using mainly Ansible.
- Create A Python Virtual Environment and activate it.
- This step is individual for all operating systems.
-
Install Ansible
python3 -m pip install ansible
-
Test Ansible
To verify Ansible is working and if all machines are connected to the right network properly, run the builtin ping module:
ansible all -i config/bees.ini -m ping --ask-pass
There will be a lot of output in the terminal - if things are OK, it will contain:
"ping": "pong"
Now run the playbook:
ansible-playbook -i config/bees.ini setup/ping.yml --ask-pass
If everything is OK, it gives:
PLAY RECAP ************************************************************************************************************************************************************************************************************
10.10.10.19 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
10.10.10.20 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
10.10.10.21 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
10.10.10.22 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
- Install Cluster Software
This step needs further documentation.
SuperMesh/
├── config/
│ ├── ansible.cfg # Ansible settings
│ ├── bees.ini # Put the Beelinks and the IPs
│ ├── cameras.yaml # Where each camera is physically mounted (corner, height, room size)
│
├── setup/
│ ├── ping.yml # test to make sure we talking with all the BeeLinks
│
├── node/ # Code that runs on each Beelink
│ └── depth_capture.py # Blob detection + sends data to central over OSC
│
├── central/ # Code that runs on the central computer
│ └── receiver.py # Listens for blob data from all nodes over OSC, builds object map
│
├── concepts/ # Proof of concept stuff / things we tested, stuff that worked,
│ │ # stuff that didn't
│ ├── depth_motion_detection.py # motion detection + optical flow PoC (this one works)
│ ├── install_depth_camera.yml # Tried to install RealSense SDK via Ansible (didn't work)
│
├── run_depth_cameras.yml # Playbook to launch depth_capture.py on all nodes
Launched in Spring 2026 by:
- Zephyr Smith: zsmith88@gatech.edu
- Benjamin Morrissey: bmorrissey9@gatech.edu
- Mrityunjay Krishnakumar: mkrishnakumar9@gatech.edu
Georgia Institute of Technology Atlanta, Georgia, USA