  In systems of active programmable matter, individual modules require a
constant supply of energy to participate in the system's collective behavior.
These systems are often powered by an external energy source accessible by at
least one module and rely on module-to-module power transfer to distribute
energy throughout the system. While much effort has gone into addressing
challenging aspects of power management in programmable matter hardware,
algorithmic theory for programmable matter has largely ignored the impact of
energy usage and distribution on algorithm feasibility and efficiency. In this
work, we present an algorithm for energy distribution in the amoebot model that
is loosely inspired by the growth behavior of Bacillus subtilis bacterial
biofilms. These bacteria use chemical signaling to communicate their metabolic
states and regulate nutrient consumption throughout the biofilm, ensuring that
all bacteria receive the nutrients they need. Our algorithm similarly uses
communication to inhibit energy usage when there are starving modules, enabling
all modules to receive sufficient energy to meet their demands. As a supporting
but independent result, we extend the amoebot model's well-established spanning
forest primitive so that it self-stabilizes in the presence of crash failures.
We conclude by showing how this self-stabilizing primitive can be leveraged to
compose our energy distribution algorithm with existing amoebot model
algorithms, effectively generalizing previous work to also consider energy
constraints.
