“Interfaces” will build the bridge between performing arts and computer art. Namely it will capture the dynamics and expression from dance and transport it into the world of code generated art. “Interfaces” wants to trigger, push and moderate a dialog between generative artists and choreographers. The end result – apart from the resulting artworks – will be a data- and knowledgebase loaded with workflow documentation, sample code, converters and scanners and other open source tools that aim to help creators to run their respective part of collaborations between dance and code art. For a generative artist “Interfaces” will provide the dancer to perform in the parameter space of the code. For Choreographers “Interfaces” will open a new stage that has their audience in galleries and on the web.
Further information regarding this project besides of the software part can be found here:
For any questions regarding installation and setup feel free to visit our Discord ( link above ) and ask questions in the feedback area.
As this is a bundle of software wrapped into docker images, you need both docker
and docker-compose
to install and run this code. A Debian-based Linux distribution is the recommended OS for this, but any OS capable of running Docker should work.
If you don't plan to develop but use Interfaces, there is no need to fetch the whole git history. Create a flat copy of the repo, e.g. via:
git clone --depth 1 https://github.com/gandie/interfaces-docker.git
Docker engine installation guide
Also install docker-compose
wrapper, e.g. using Ubuntu:
apt install docker-compose
After setting up the requirements, run the installation script:
./StartZopeCompose
This will call the corresponding docker-compose
command, which will then download and build the images and set up and run the containers.
After that the webapp should be available on browser via:
http://localhost:80
As port 80 will be exposed on all available network interfaces, you're able to run the webapp from any other device living in the same network via IP-address.
Upgrading your installation can be done by tearing down the current installation ( removing docker images and containers in the process ) and reinstalling afterwards.
Teardown via:
./TearDown
Warning! As this script assumes that this is the only docker environment installed, it will remove ALL docker images. If you run multiple docker environments make sure to alter the TearDown
script before you run it.
In case of upgrades only affecting the webapp ( living in mounts/zoperepo/__root__
) you don't need to teardown and reinstall, simply override the folder mentioned with a new version and restart the system. On each start of the webapp, the contents of mounts/zoperepo/__root__
will be written into the web application.
Sometimes the first startup may crash, with errors like:
zeo_1 | ZODB.POSException.ConflictError: database conflict error (oid 0x03, class Persistence.mapping.PersistentMapping ...
... resulting into many deleted files visible in the project folder via git status
Reboot the machine, then restore webapp in project folder:
git restore mounts/zoperepo/__root__/
... and restart zeo container:
docker container restart zope-compose_zeo_1
This will trigger a forced rewrite of the webapp and after a few moments it should work as expected.
List of software used in this project:
- docker and docker-compose
- Zope web application server
- postgres database
- haproxy load balancer
- tensorflowJS for in-browser scanning
- mediapipe ML solutions for server-side scanning
- docker environment template used for this project
- 7pc for getting this project on the road
- Klappson for sharing his docker knowledge
- r1b2art for sharing awesome p5 code pieces
... and of course all the awesome open source projects mentioned in the link list for providing a rock solid open source basis for this project