# Breathing Geometry
- published on
A breathing exercise with a geometric companion.
I like geometric shapes, patterns, and symmetries. So when I took a university mathematics course on these topics, and had the opportunity to explore them visually through a project, I was delighted! I chose to create a breathing exercise which takes the form of pulsating geometric shapes – with subtle detail showing off the fundamental domain of their symmetry groups.
When working with mathematical content (or more generally “real” data, a la sonification), it’s relevant to consider whether you’re creating a piece of art or whether you’re creating a visualization. To a first order, I might differentiate the two based on the amount of creative decision making used for a piece, but obviously such a border is fuzzy. Nevertheless I strived to create a piece that demonstrates some tangible mathematical idea, that is also experientially interesting in some form.
I wanted to explore the connection between platonic solids and their spherical geometries in a way that bridged the intuitive gap between the two. I played with continuously transforming solids into spheres, and found that to be an interesting visual effect. I chose the form of a breathing exercise, because my explorations reminded me of a particular breathing exercise I had seen on social media some years ago:

Most of my decisions were made to accomodate for relaxation. One of my choices was to refer to the shape as a companion, a characterization that forms an unlikely human connection to the page and helps with grounding. I was also particularly proud of the slow “sleep” fade, where the entire UI of the page starts to wash away after some time spent idle, leaving only the companion in the middle of the screen. I have found myself using this page to relax myself as well. I particularly enjoy the tetrahedron and the way it seems to stretch beyond its capacity, but have great empathy towards all of the companions.

On the technical side, I chose to use WebGL and JavaScript to render and manipulate 3D meshes. This worked as a “sanity check” to make sure that this idea was doable in the first place, plus helped me build my web / graphics coding skills. Perhaps p5.js would have been an easier choice for this, but I was happy to learn the fundamentals of web-based graphics as well.
Project website: https://olivialta.cc/breathing-geometry
Update blog: https://olivialta.cc/blog/breathing-breathing-geometry