ACMX2 · Art · Mental health

Turning inner noise into a form I can see.

I use ACMX2 to release thoughts that are difficult to carry and channel them into color, motion, distortion, and light. I built it in the hope that other people might find their own way to do the same.

A vivid layered abstract image being created in ACMX2
A thought transformed through layers of color and motion.

The screen gives my thoughts somewhere to go.

Release the negative energy and transmute it into something positive

When I am feeling paranoid, or the thoughts are becoming intrusive, I load up ACMX2 and release my energy into the visuals and create art. This gets it out of my mind and onto the screen where I can work with it and release it. I find this helps me cope the best that I can. I shared my code online in case anyone else can find the same kind of relief that I feel from this software.

InputA thought or feeling
TransformColor, motion, layers
ReleaseAn image I can keep or let go

The idea behind ACMX came from a meditation about transformation.

The meditation asked me to take something that frightened or disturbed me, give it a visible form, place it on an imagined screen, transform it, clear it away, and replace it with something different. The important part for me was not simply destroying an unpleasant image. It was taking something that had power over me, bringing it outside of myself, changing its form, and repeating that transformation until I could relate to it differently.

IdentifyGive the thought, fear, or feeling a form.
ObservePut it somewhere I can look at it from a little distance.
TransformChange its color, shape, movement, structure, and meaning.
RepeatKeep changing it until I am ready to release it.

That idea became the conceptual foundation of ACMX. The program takes an input and passes it through transformation functions. Technically, that input can be a photograph, video, live camera, or 3D texture. Creatively, the input can also stand in for a thought, memory, mood, fear, or feeling. Instead of leaving that experience in its original form, ACMX gives me a way to put it on the screen and manipulate it. Color can change. Shapes can dissolve. Images can mirror, fracture, stretch, glow, repeat, distort, blend with their own past, or become completely abstract.

The screen becomes a place where something difficult can be observed and changed instead of only carried internally. That is why the simple idea of Input → Transform → Release is more than a description of the user interface. It describes the reason I wanted the program to exist in the first place.

The software makes the metaphor literal.

ACMX applies transformations in an ordered chain. One filter or shader changes the image, then its output becomes the input to the next transformation. Changing the order changes the result. The same source can therefore become thousands of different images without changing what the original source was. In programming terms, it is an image-processing pipeline. For me, it also became a way of thinking about difficult internal experiences.

Repetition matters to the idea as much as transformation. The meditation does not stop after showing the fear once. It changes the representation and returns to it from a different emotional position. ACMX can do something similar visually. A frame can be transformed, fed into another transformation, blended with previous frames, revisited through history buffers, or allowed to evolve continuously over time. The past can remain present in the image without remaining unchanged.

This is also why there is no single correct ACMX image. The point is the process. I can begin with something that represents how I feel and keep changing it until the image begins to feel different to me. Sometimes that means making it brighter or more beautiful. Sometimes it means making it strange, chaotic, exaggerated, fragmented, or completely unrecognizable. Sometimes several transformations are necessary before the image reaches a place where I feel I can leave it.

At its core, ACMX is a transformation system. Something enters in one state, a series of functions act upon it, and something different comes out. For me the personal idea is simple: take what is bothering me, give it a form, transform it, observe what it becomes, and keep transforming it until I am ready to let it go.

Built for exploration, not a “correct” result.

ACMX2 is an interactive visual instrument built with C++, libmx2, WebAssembly, WebGL 2, JavaScript, and GLSL. Its controls make the emotional idea of transformation literal: one source can become thousands of different images.

ACMX2 displaying a blue mirrored abstract composition while the 3D model menu is open
Exploring a 3D form through a live shader turns a familiar source into a new visual space.
Choose a starting point

Image, camera, video, or 3D form

Begin with a photograph that means something, a live view of yourself or your surroundings, a moving clip, or one of the included models.

Follow curiosity

More than 1,000 live shaders

Explore kaleidoscope, fractal, mirror, liquid, VHS, glitch, color, and geometric effects. There is no need to know in advance what you want to make.

Give feeling a gesture

Touch, drag, and tune

Use mouse or touch, then adjust speed, frequency, amplitude, hue, saturation, brightness, contrast, zoom, and rotation to make the image answer your movement.

Build depth over time

Layer, save, and revisit

Order effects into multipass chains, capture high-resolution PNG stills, or record the evolving canvas as video. Chains can be saved and shared as small JSON recipes.

ACMX2 transforming a source into a layered blue abstract image with its live controls visible
A layered composition evolving live, with the controls kept close to the image.
ACMX2 showing the multipass shader chain editor over a fluid distorted image
The multipass editor lets one transformation flow into another and be saved as a reusable chain.

A simple way to use ACMX2 for expressive art.

This is not about making something polished. It is a short, open-ended process for noticing a feeling, giving it visual form, transforming it, and reflecting on what changed.

  1. Pause and notice.Name one feeling if you can, or simply notice its energy, weight, temperature, or pace without forcing words.
  2. Choose a source.Load an image or video, point the camera at an object, or start with an included form. Pick what feels manageable today.
  3. Give it visual form.Let the source stand in for what you are carrying. It does not need to literally depict the thought or feeling.
  4. Transform, don’t judge.Browse effects and adjust color, speed, movement, distortion, mirroring, and layers. Keep what changes your relationship to the image, even if it looks strange or unfinished.
  5. Repeat as needed.Build a multipass chain, use temporal effects, or return to one quiet transformation. Let one result become the starting point for the next.
  6. Close the session.Save a still or short recording if you want a record. Then ask: What changed? What surprised me? What can I leave in the image for now?
No perfect image required

Start with what is here.

Choose one source, one effect, and one feeling. Transform it, observe what changes, and keep going until the image carries something you are ready to leave there.