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.
The screen gives my thoughts somewhere to 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.
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.
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.
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.
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.
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.
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.
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.
- Pause and notice.Name one feeling if you can, or simply notice its energy, weight, temperature, or pace without forcing words.
- 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.
- 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.
- 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.
- 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.
- 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?
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.