Build Your Robot's Brain in aPositronic Studio
Try it Now
High-performance spiking neural networks.
Tens of millions of node updates per second on consumer hardware.
aPositronic is a neuromorphic computing platform for creating neural networks for AI. It is written in efficient C for use on hardware ranging from microcontrollers to the most powerful CPUs.
While it is based on neuroscience, aPositronic is for research and development in technology, rather than being primarily intended for scientific research. It is a practical R&D tool for building real things: brain-like computation you can embed in products like toys, drones, robots, or large-scale systems.
The term impulsatronics is used along with aPositronic to refer to this variety of biologically-inspired and neuroscience-based technology.
In aPositronic, terms are changed from biology and neuroscience to technology and engineering. The idea is not to simulate biological neurons, but to implement their essential functionality using technology.
| Neuroscience Term | aPositronic Term |
|---|---|
| neuron | node |
| membrane potential | potential |
| synapse | connection |
| spike | impulse |
The clean, simple design of the aPositronic API is one of its major features. All API functions are limited to using simple hardware data types, specifically integers and 32-bit IEEE floating point numbers, for their arguments and return values. This results in the API acting as a universal bridge to practically every programming language.
On Linux, aPositronic can be built as a shared object (.so) library. Practically every programming language on Linux can make use of .so libraries. Instead of putting everyone in a Python jail, aPositronic opens up neuromorphic programming to everyone, regardless of their preferred language.
Compiled languages, such as C, C++, Zig, Go, Rust, and even Fortran, can use the aPositronic API directly, for maximum execution speed and minimal energy consumption. (And if that weren't enough, even assembly language programs can access the API in the same manner.)
Interpreted and scripting languages, such as Python, Lua, Ruby, Java, Kotlin, etc. can access Linux .so libraries through FFIs (Foreign Function Interfaces) that have been developed to allow those languages to access the thousands of available Linux .so libraries. The Python programming interface included with the aPositronic is one example.
Since aPositronic is entirely contained in the apositronic.so library, it can easily be included into other applications to add neuromorphic computing functionality to them.
aPositronic is aimed at becoming a platform for creating and running neuromorphic models across a wide range of hardware and software platforms.
It is written in C for high portability and support of the full range of computing hardware, from microcontrollers to AI datacenters, and everything from microcontrollers with real-time operating systems (or none at all) to sophisticated operating systems such as Linux, BSD, MacOS, and Windows.
The development plan is for aPositronic to become aPositronic Studio, composed of two main parts: a development module for building models, and a runtime module, containing only the support necessary for running models in the development target (product).
By 2036, we may have neuromorphic computing technology that puts tens of billions of artificial neurons into the head of a humanoid robot, running off just 1-3 watts of power. We will need tools that make it possible, and hopefully not too difficult, to implement models for neuromorphic AI systems of that complexity. From its inception, aPositronic is being designed to grow into the needs of the future.
This is the first public release of aPositronic, version 0.1.0.
The intent of this initial release is to introduce aPositronic to the world, and allow early adopters to get started learning how to create and run neuromorphic models, and provide feedback that will be used for further development.
Hardware support is limited to CPU only (no GPUs or neuromorphic hardware is supported yet). Development is on Linux running on recent Intel/AMD CPUs and Raspberry Pi 5.
The Python API is documented, and is recommended as the starting place for new users. The C API is fully functioning, but full documentation for it is not provided in this release. (If you want to create models in C, consult the examples in the models directory, along with the Python API documentation and apositronic.c source code.)
Current functionality includes functioning nodes, implementing LIF neuron behavior, spike propagation, sequence learning, rate coding / homeostasis, and correlation strengthening.
You will need to have a C compiler, 'make', Git, and Python installed. Then you can install aPositronic and run the lif.py demo with the following commands:
Then read the README file, and continue to the tutorial and Python API documentation.
This project is currently unfunded.
Individual donations, grants, and sponsorship will support future development.
See the README file or Contact me for directions on making individual donations.
Hardware donations are also welcome.
Contact me for the shipping address.