Skip to main content

ArtificialBrains Python SDK

Project description

Artificial Brains Python SDK

A realtime SDK for connecting robots to Artificial Brains.

This SDK handles:

  • communication with the brain runtime
  • encoding sensor inputs into spike signals
  • decoding spike outputs into control commands
  • streaming inputs, outputs, and rewards in realtime

You focus on the robot.
The SDK handles the brain.


Core Idea

The system is split into two responsibilities:

Controller (your configuration)

  • read sensors
  • apply motor commands
  • compute rewards

SDK

  • send inputs to the brain
  • receive outputs from the brain
  • route rewards to learning layers
  • manage realtime session lifecycle

Installation

pip install artificialbrains-sdk

Quick Start

1. Configure

Create a .env file:

AB_PROJECT_ID=your_project_id
AB_PYTHON_URL=http://localhost:8000
AB_NODE_URL=http://localhost:3000
AB_API_KEY=your_api_key

2. Start a session

from ab_sdk import ABClient

client = ABClient.from_env(env_path=".env")
session = client.start_from_env()

3. Send inputs

session.publish_input(
    sensor="ps0",
    signal=1234.0,
    vmax=4095.0
)

4. Receive outputs

def handle_output(output):
    print(output)

session.on_output(handle_output)

5. Send rewards

session.send_global_reward(1.0)
session.send_local_reward("on_line", 0.5)

Robot Loop (Recommended)

from ab_sdk import RobotLoop

def get_state():
    return {
        "ps0": 1200.0,
        "ps1": 800.0,
    }

def compute_reward():
    return {
        "global": 0.1,
        "local": {"on_line": 1.0}
    }

def apply_command(cmd):
    print(cmd)

loop = RobotLoop(
    session,
    state_provider=get_state,
    reward_provider=compute_reward,
    command_executor=apply_command,
)

loop.run_forever()

Architecture

Session

RealtimeSession is the core runtime object.

It manages:

  • input encoding
  • output streaming
  • reward routing
  • decoder execution

Maps

Maps define how the brain connects to your robot:

  • InputSensorMap → sensors → brain inputs
  • OutputMotorMap → brain outputs → motors
  • RewardMap → outputs → learning layers

Make sure your IDs in the brain match the IDs of the sensors and motors.

Encoder

SpikeEncoder converts sensor values into spike populations.


Decoder

GenericSpikeDecoder converts spike activity into control commands.

The brain emits spikes per output population (neurons firing at each timestep).
The decoder reconstructs this activity into dense vectors and transforms it into actuator deltas.

Each output is mapped using a decoding scheme:

  • bipolarSplit
    Splits the population in two halves:
    first half = positive, second half = negative
    → output = (positive − negative)
    → useful for continuous control (e.g. wheels, joints)

  • addition
    Sums all active neurons
    → output = total spike count
    → useful for accumulating signals or intensity-based control

  • booleanThreshold
    Activates only if spike count crosses a threshold
    → output = 1 or 0
    → useful for discrete actions (e.g. trigger, grasp)

  • bipolarScalar
    Compares positive vs negative halves
    → output ∈ {-1, 0, +1}
    → useful for directional decisions


From spikes to movement

The decoder pipeline is:

  1. Collect spikes from runtime output
  2. Reconstruct population activity (bit vector per output)
  3. Apply decoding scheme → scalar value
  4. Scale to delta (using gain, limits, etc.)
  5. Aggregate into command

Final output:

{
    "t": step,
    "deltas": {
        "left_wheel": 0.01,
        "right_wheel": -0.01,
    }
}

---

## Philosophy

The brain learns.  
The robot acts.  
The SDK connects them.

---


## License

Artificial Brains SDK is **source-available**.

You are free to:
- use the SDK in personal and commercial projects  
- integrate it into your robots, simulators, and applications  
- modify the code for your own internal use  

You may **not**:
- repackage or redistribute the SDK as a standalone product  
- offer the SDK as a hosted or managed service  
- use the SDK to build or operate a competing platform  
- sublicense or resell the SDK itself  

This SDK is designed to enable developers to build on top of Artificial Brains  not to replicate it.

If you are interested in partnerships, embedding at scale, or special licensing terms, contact us.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

artificialbrains_sdk-0.2.6.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

artificialbrains_sdk-0.2.6-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file artificialbrains_sdk-0.2.6.tar.gz.

File metadata

  • Download URL: artificialbrains_sdk-0.2.6.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for artificialbrains_sdk-0.2.6.tar.gz
Algorithm Hash digest
SHA256 ad291e27ee055f1b3e71161c9f09151b768d12a18f11333238223be0fe479f22
MD5 9afdc91c73fee39650c35ed67220fe08
BLAKE2b-256 2a3497d6a220c179a850a7928cc36fdfc08e8b22879c0705d65c40babdad75f3

See more details on using hashes here.

File details

Details for the file artificialbrains_sdk-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for artificialbrains_sdk-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d5e8fc548bf0f38a17a30a484c29f8c6972a1c9c8d981d87244c6ed5f9a4bdb8
MD5 0bc8ff75e500c73f05687822343742c0
BLAKE2b-256 df47801718f2eb198d4d8efd848e55a11a8d4cf1472a2ecd332a9e254a49556a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page