Building SOL-1: Motion, Failure, and the Making of a Kinetic Presence
- mjsanni123
- May 15
- 8 min read
By Niyi Adeogun
Founder and Creative Director, CXRE Labs

If What Makes You Human established the conceptual foundation of the series, and Paper 02 documented the behavioral logic of SOL-1 inside TouchDesigner, then the next stage of the work asked a more difficult question: what happens when the organism is forced to become physical?
This was the point at which the project became materially demanding. Inside software, SOL-1 had already begun to function as a responsive system. It could hold emotional states, shift physiological rhythm, respond to sound, recover through time, and suggest the first signs of artificial presence. But even as that internal architecture became stronger, a limitation became increasingly clear. Screen-based behavior alone could not fully carry the work. The project became more compelling when its internal life was imagined not as simulated movement on a screen, but as real motion in space. That realization marked the beginning of the physical build.
The build phase was not smooth. It involved unstable test setups, compile failures, power misunderstandings, serial conflicts, driver-board confusion, inconsistent motion, structural recalibration, and repeated simplification. But that resistance was not separate from the art. It was one of the ways the organism’s true form became clearer. SOL-1 did not become real when the idea was described well. It became real when motors had to move, wires had to carry current reliably, boards had to communicate, and a body had to hold together under actual physical stress.
This paper documents that transition. It focuses on the making of the body: the hardware architecture, the challenges, the failures, the solutions, and the lessons that emerged when the organism stopped being only a behavioral concept and began becoming a kinetic presence.
Why the Project Had to Become Physical
One of the most important discoveries of the earlier development phase was that the work was strongest when its behavior was not only shown, but physically felt. The internal state system, sound logic, and visual experiments inside TouchDesigner were all necessary, but they also revealed a limit. Breath, contraction, agitation, recovery, and emotional tension did not carry the same weight when they remained screen-bound. Motion had to become bodily. Light had to become internal rather than decorative. The system needed to move from simulation toward embodiment.
This changed the structure of the prototype. Motion and light became the primary expressive outputs. Sound and projection were reframed as supporting layers. TouchDesigner remained the behavioral brain of the system, but its role expanded. It was no longer only coordinating audiovisual behavior. It was now responsible for choreographing a physical organism. That shift was both conceptual and technical. It meant that the project was no longer being developed mainly as a responsive media object. It was becoming a kinetic sculpture whose internal states would be felt through real motion in space.
Designing the Body
The physical prototype was built around a clear hardware architecture. At its core were an Arduino Mega, PCA9685 servo driver boards, MG90S-style micro servos, a MeanWell 5V 90W power supply, LED components, distance sensors, and a 3D printed base structure that would support an organized servo array. The aim was not to create a polished final sculpture immediately, but to establish a reliable motion body that could carry the organism’s breathing language, state behavior, and future interaction systems.
As the build evolved, the physical body took shape as a 24-servo array arranged in a structured 4 x 6 grid. This was a major step because it transformed the organism from a loose collection of test components into a coordinated body plan. The servos were mounted to a printed grid plate, labeled by channel, and distributed across two PCA9685 boards. One driver board remained at address 0x40 while the second was configured to 0x41, allowing the system to expand beyond 16 channels in a clean and stable way.
But before the full array could function, the project had to survive the ugly middle stage where almost nothing worked cleanly the first time.
The First Hardware Challenges
The earliest hardware problems began even before motion. The Arduino environment itself had to be stabilized. Simple sketches initially failed to compile because of board-target, toolchain, and library issues. That problem had to be resolved before the organism could even begin physical testing. Once the development environment was cleaned up and the board configuration was stabilized, direct servo testing could begin. That first movement mattered. It was small, but it confirmed that the project had crossed from concept into actual mechanical response.
The next challenge came in establishing communication between TouchDesigner and the Arduino. That path was essential because the final organism depended on TouchDesigner driving behavior while Arduino handled motor control. But the serial setup did not work immediately. The wrong serial port was initially selected, the Arduino Serial Monitor and TouchDesigner competed for control of the same port, and incorrect callback expectations created DAT-side errors. These problems were solved by selecting the correct port, ensuring only one application owned it at a time, and simplifying the callback path. Once that was done, TouchDesigner successfully sent serial data and Arduino successfully received it. This was the first confirmation that the organism’s software brain could actually speak to its physical controller.
Then came one of the more important hardware misunderstandings in the build: PCA9685 logic power versus servo rail power. The board appeared powered, its LED was on, and the code ran, but the servo did not move. The issue turned out to be simple and significant. VCC powered the logic side of the driver board, but V+ powered the servo rail. Only the logic side had effectively been accounted for. Once the servo rail was also powered, the servo responded. This was a crucial breakthrough because it clarified the architecture that would eventually support the full body. Stable servo power was not the same thing as logic communication. Both had to be treated seriously.
The First Real Wins
After the isolated components were proven separately, the next milestone was to connect the full chain: TouchDesigner to serial, serial to Arduino, Arduino to PCA9685, and PCA9685 to servo. The first attempts were inconsistent. TouchDesigner button behavior was misleading, send logic was too indirect, and angle values sometimes appeared to collapse unexpectedly during testing. The solution was simplification. The send path was made more direct, the button logic was corrected, and the Arduino sketch was revised to print raw received values before conversion. Once the test path was stripped down, the one-servo live control test worked. TouchDesigner was successfully controlling a physical servo through the full intended chain.
From there, the build extended to a two-servo test. TouchDesigner sent two values in a single serial message, Arduino parsed both, and the PCA board drove two separate channels. The first movement succeeded, but the system quickly became inconsistent under the temporary power arrangement. Instead of forcing the setup and creating confusion, that instability was treated honestly. The issue was understood to be power-related rather than logic-related. The architecture itself had been validated. Multi-value serial parsing worked, multi-channel driver-board output worked, and two servos had moved through the full chain. That was enough to prove the system’s direction without pretending the setup was already stable.
This was one of the healthier decisions in the project. The build did not move forward through denial. It moved forward by recognizing what had actually been proven and what still depended on better infrastructure.
Power, Structure, and the Ugly Middle
The arrival of the MeanWell power supply marked the beginning of the real physical prototype. Before that point, power routing had been partial, improvised, and limited to small tests. Once the external 5V supply arrived, the servo power rail could be properly distributed across the PCA boards while maintaining shared ground between the MeanWell supply, Arduino Mega, and driver boards. This was the transition from bench testing into full hardware build.
With stable external power in place, the full 24-servo array could finally be assembled, wired, and activated. A full-board test sketch confirmed correct PCA addressing, successful power distribution, stable shared grounding, correct servo channel mapping, and sufficient current delivery for full-array motion. This was a major milestone because it meant the organism was no longer theoretical as a body. It had become a viable kinetic platform.
But even here, refinement was still necessary. The initial neutral horn orientation was vertical, which made the movement feel stiff and visually weak. To improve readability, the entire array was recalibrated so that the horns rested in a horizontal neutral position. That change significantly improved the physical legibility of expansion and contraction, especially for synchronized breathing behavior. It is a good example of how form emerges through adjustment. The original setup was functional, but it was not expressive enough. The recalibration made the body more believable.
The motion language also had to be tested rather than assumed. A series of sketches were explored before synchronized breathing was selected as the baseline movement logic. Even then, the amplitude had to be increased to give the motion enough emotional presence and physical clarity. The organism was teaching the build what kind of movement it needed.
What the Build Taught the Work
The physical build did more than produce a body. It clarified the art.
One of the strongest lessons was that debugging is part of the creative process. Compile issues, serial conflicts, power confusion, horn orientation, and channel mapping were not detours from the work. They were the means by which the organism’s actual form was discovered. Every technical friction point forced a better question: what is essential, what is premature, what is interfering, and what makes the body feel more coherent?
Another lesson was that embodiment strengthened the conceptual argument of the project. Once the organism’s state logic began to move an actual 24-servo body, the work no longer felt like a simulation of life. It felt like a contained presence whose internal conditions had physical consequence. Motion became the primary language of the organism. Light could now function as internal emotion rather than decoration. The build gave the project a real body to carry its question.
The build also demanded conceptual cleanup. Earlier loudness-based shortcuts that mapped fear directly to sound intensity had to be removed or bypassed once the organism’s interpretive architecture matured. That refinement mattered artistically. It made the prototype less reactive in a shallow sense and more intentional as a behavioral system. The physical build was not only about assembling components. It was also about protecting the conceptual integrity of the organism as it became real.
Conclusion
Building SOL-1 physically required much more than assembling parts. It required translating a behavioral idea into a body that could survive actual constraints: software instability, serial miscommunication, insufficient power, calibration problems, structural preparation, and repeated refinement.
The good was real. The first direct servo movement worked. The serial chain worked. The one-servo and two-servo tests proved the architecture. The full 24-servo body eventually activated. State-driven motion data from TouchDesigner was successfully translated into movement across the array. The body was built.
The bad and the ugly were real too. Compile failures, callback issues, port conflicts, misunderstood power rails, unstable temporary setups, weak motion readability, and the long middle stretch between partial proof and full embodiment all shaped the process. But those difficulties were not failures of the project. They were part of how the project became itself.
SOL-1 did not become convincing because the idea was elegant. It became convincing because the build forced clarity. Hardware resistance stripped away weaker assumptions and made the stronger structure visible. By the end of this phase, the organism was no longer only a responsive concept. It had become a kinetic body with real motion, real infrastructure, and a much clearer path toward becoming the contained presence the work had been asking for from the beginning.
Acknowledgements
This research forms part of an ongoing project supported by the Canada Council for the Arts.


Comments