Machine Learning with Dynamics - Unconventional AI
Skip to content
blog<br>grant<br>careers
May 21, 2026
Blog
Machine Learning with Dynamics
Written by:
Matthew Storm Bull,
Sara Achour
Most things that exist in the physical world are never truly static. They change over time, over space, or both. These ever-changing systems are said to exhibit dynamics. If you bend your idea of what computation is, anything with interesting dynamics can be used as a computer.
In this series, we gently introduce how to perform computation with dynamics by example. We will be using gyroscopes, springs, and rods to perform handwritten digit classification. There is no particular reason why these physical elements would make a good computer. In fact, this particular assembly of objects has likely never been used for computation. We chose it as it is simply a relatable system that is constructed from tangible objects which humans have some intuition about. We could have just as easily used jello, foam, magnets, or really anything else for this demonstration.
We will introduce our basic gyroscope-on-rod compute element and make a first attempt at completing the handwritten digit classification task. We will then increase the computational power of our system by introducing springs, and then complete the classification task.
Introducing Gyroscopes on Rods
Top-down schematic of a gyroscope on a pendulum mount.
A gyroscope is a mechanical device used for maintaining orientation or angular velocity, and a rod is, well, a rod. If we affix a gyroscope to one end of a rod and affix the other end of the rod to a fixed surface, such as the ceiling, we create a pendulum with a gyroscope on the free end, suspended in air. The above visualization shows a top-down view of the gyroscope (grey circle) and the rod (blue line) with the mounting point (black dot) at the origin.
We will be using this gyroscope-on-rod system as a computer. When we perform computation with the dynamics of this system, we represent information with a property of the physical system. For the gyroscope, we will represent information using the x-y position and velocity of the gyroscope. When our gyroscope is at rest, it hangs underneath the anchor point of the pendulum and does not move. The usage of this computer works as follows:
Applying Inputs – To feed inputs into the computer, we change the initial position and velocity of the gyroscopes, or nudge them over time. This embeds input information into the physical properties of the system.
Computation – The gyroscope-on-rod system evolves over time, transforming the information encoded in the gyroscope position and velocity and thus performing computation.
Reading Outputs – To read outputs from the computer, we measure the position and velocity of the gyroscopes after some time has elapsed.
Programming – To program the computer, we adjust the properties of the rod and gyroscope so that the system yields the desired dynamics.
Playing with the Gyroscope System
The gyroscope does not do anything interesting at rest. Let us say we now move the gyroscope from its resting position by ten degrees, release it, and then watch it move for 10 seconds. If we do this, the gyroscope moves through a transient and, if we were to wait long enough, it will settle toward a steady state, its resting position:
Evolution of the gyroscope-on-rod system over time.
There are multiple ways to manipulate this gyroscope-on-rod to have interesting behavior. We may also push or pull the gyroscope as it is evolving to change its behavior. We can change the direction in which we push or pull the gyroscope over time to shape its movement:
No external nudge
Slowly rotating nudge
Both strategies can be used to encode inputs. We can apply inputs to our gyroscope-on-rod system to perform computation by setting the initial position of the gyroscope and nudging it over time.
The dynamical system may be programmed by setting the length of the rod, the gyroscopic coefficient, and the mass of the gyroscope:
Original Gyroscope-on-Rod System
2x Heavier Gyroscope
2x Longer Rod
The above simulations all start from the same initial condition, but evolve differently due to differences in the gyroscope and rod. The heavier gyroscope moves more slowly, and the longer rod causes the gyroscope to move in a wider arc. If we continue with the computer analogy, we can say that the physical properties of the system are the “program” that we are running on the computer. We can change the program by changing the physical properties of the system. The nudges we apply to the gyroscope or the initial position of the gyroscope are the “inputs” to the program.
Take 1: Classification with Gyroscopes on Rods
Using the above gyroscope-on-rod dynamical system, we will next classify handwritten digits from their stroke trajectories. The PenDigits task in the time-series classification literature (AEON / timeseriesclassification.com) has 10 digit classes,...