purple filaments on black background generated by the interactive interface

PROJECT DATE & PLACE

2022, personal project, Vevey, Switzerland

MY ROLE

Coding / Publishing

MY OWN NEBULA –

PYTHON, PROCESSING.PY, P5.JS

Nebulas are beautiful space objects — gas and dust clouds with distinctive colours, acting as star nurseries. Watching a PyCon 2018 conference by Emily Xie gave me a great basis to build upon and use processing.py and then p5.js to build an interactive interface that draws a human-machine generated output that resembles nebulas. It was important to me that the interface allows user input to alter the generated output and make their own version, and also that it can be outputted in a browser, therefore I translated the python code to p5.js and ran it in the processing app to check for bugs, typos, etc.

It is basically a live update on screen of endlessly repeated circles (or sections thereof) that are drawn and overlaid. The mouse cursor operates as a centre and guide to the automatically generated circle arc; the amplitude slider determines the max deployment angle for the circle arc (min 10 degrees and max 360 for the full circle). Press any key and the output is saved as a tif file. The shape randomness is achieved thanks to the Perlin noise function. At each iteration, the drawn arc either diminishes or grows depending whether its radius has a positive or negative value.

For the full code, please visit my Github page.