ArcMind
A causal, dual-rate sequence backbone for streaming sensor policies.
Alpha research release. The architecture and streaming API are tested. Existing experimental checkpoints predate the current causal-memory revision and are not paper results. APIs may change before 1.0.
Overview
ArcMind is an experimental backbone for low-dimensional sensor streams under partial observability. It combines:
- a selective state-space fast path that updates on every sensor frame;
- a lower-rate exact-attention path over a bounded ring buffer of compressed, strictly prior decision states;
- learned relative-age embeddings that make memory order observable; and
- a learned gate that fuses recurrent and recalled representations.
The implementation is sensor-to-action: raw floating-point channels are projected directly into the model dimension and the output head predicts a continuous action vector. ArcMind is not currently a language model, vision-language-action model, or offline-RL algorithm.
sensor frame -> tokenizer -> selective SSM ----------------------+
| |
+-> periodic compressed memory |
| |
current decision state -> bounded exact recall over prior slots |
| |
+---------- learned fusion <-------+
|
action
For a fixed configuration, recurrent state and episodic memory remain bounded during streaming inference. Performance and hardware suitability are empirical questions covered by the research protocol; this README intentionally does not claim state-of-the-art results.
Installation
Requirements: Python 3.10 or newer and PyTorch 2.1 or newer.
pip install arcmind
The optional Minari-backed offline-control adapters are installed with:
pip install "arcmind[datasets]"
Benchmark authoring utilities are available through arcmind[benchmarks].
For development:
git clone https://github.com/jemsbhai/arcmind.git
cd arcmind
pip install -e ".[dev]"
pytest
Batch use
import torch
from arcmind import ArcMindConfig, ArcMindModel
config = ArcMindConfig.robotics_small()
model = ArcMindModel(config)
sensor_data = torch.randn(2, 100, config.num_sensor_channels)
actions = model(sensor_data)
assert actions.shape == (2, 100, config.action_dim)
The batch path is causal and stateless across calls. Slow-path decisions occur at
sensor_freq_hz / decision_freq_hz, and each decision can recall only snapshots
written by earlier decisions.
Streaming use
model.eval()
model.init_streaming(batch_size=1)
with torch.no_grad():
for sensor_frame in sensor_stream:
action = model.step(sensor_frame)
actuator.send(action)
Call init_streaming() at every episode boundary. It clears the SSM state,
episodic memory, held slow-path output, and step counter. Unit tests require the
streaming recurrence to match causal batch execution.
Custom configuration
config = ArcMindConfig(
num_sensor_channels=9,
d_model=96,
num_ssm_layers=6,
ssm_state_dim=12,
num_attn_layers=1,
num_attn_heads=3,
attn_window_size=32,
num_memory_slots=64,
memory_compress_ratio=4,
action_dim=4,
sensor_freq_hz=200.0,
decision_freq_hz=20.0,
)
model = ArcMindModel(config)
attn_window_size is the maximum number of recent decision snapshots visible
to exact recall. num_memory_slots controls retained episode history and may be
larger than that window.
The registered ablations are available through configuration flags:
ablate_ssm, ablate_attention, ablate_memory, ablate_gating, and
ablate_temporal_encoding.
Presets
Counts are generated from the current source and checked by the test suite. Hardware labels are intentionally omitted until matched-device measurements exist.
| Preset | Parameters | SSM share | Exact-attention share |
|---|---|---|---|
iot_tiny |
246,356 | 73.2% | 20.6% |
robotics_small |
1,692,070 | 84.2% | 12.2% |
robotics_medium |
10,354,252 | 82.1% | 15.6% |
The fast path is a compact, pure-PyTorch input-dependent selective SSM. It is inspired by selective state-space modeling but is not the published Mamba or Mamba-2 block and does not use their optimized kernels.
Research and reproducibility
The research protocol defines the falsifiable claim, required baselines, benchmark families, ablations, statistics, efficiency measurements, and prohibited claims. The companion benchmark audit records the primary-source rationale, implementation status, and like-for-like versus contextual comparison boundary.
The planned evidence has three tracks:
- POBAX and POPGym for the memory mechanism;
- low-dimensional RoboMimic for state-based robot imitation; and
- UEA plus MONSTER for multivariate sensor classification diagnostics.
UCI HAR, Opportunity, MuJoCo, and AntMaze examples remain development smoke tests. They are not sufficient evidence for the proposed contribution.
No existing checkpoint or metric should be cited as a result of the current architecture. Paper results must be regenerated from committed configurations, seed manifests, immutable dataset identifiers, and machine-readable raw output.
Project status
- Causal batch and recurrent execution
- Selective SSM fast path
- Bounded, chronological, time-aware exact recall
- Learned memory compression and fast/slow gating
- Configuration presets and component ablations
- PyPI package, reproducible artifacts, and release-gated unit tests
- Pre-registered research and evaluation protocol
- Local delayed-recall benchmark, matched baselines, and aggregation
- Commit-pinned JAX/POBAX environment and streaming inference parity
- Shared discrete/continuous JAX PPO learner
- Parameter-matched recurrent, convolutional, SSM, and attention controls
- Registered ArcMind ablation adapters with effective parameter counts
- S5RL reset-aware structured-SSM policy adapter
- Privileged-observation reference adapters
- Registered multi-seed experiments
- Reproducible paper tables and figures
- Pretrained weights
Citation
A paper citation will be added after the registered experiments. Until then:
@software{arcmind2026,
title = {ArcMind: A Dual-Rate Sequence Backbone for Streaming Sensor Policies},
author = {Syed, Muntaser},
year = {2026},
url = {https://github.com/jemsbhai/arcmind}
}
License
ArcMind is released under the MIT License. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arcmind-0.2.0.tar.gz.
File metadata
- Download URL: arcmind-0.2.0.tar.gz
- Upload date:
- Size: 97.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc7bf7d2f52036aae9d5bed615cd2d7fa2549ef23abba1c528e24a2f61077f40
|
|
| MD5 |
8aa658eb7b0666a844773d6a4eb09cf1
|
|
| BLAKE2b-256 |
2eec5bdf1ca08ee432b0ad266bab3984d396b32311e6bba34e89faf41c3ff07c
|
File details
Details for the file arcmind-0.2.0-py3-none-any.whl.
File metadata
- Download URL: arcmind-0.2.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
501c22f6aa17362117e8184ca153ad5dfa69bee7521f03c129ec0f39a6a4c87b
|
|
| MD5 |
bb289251c0faca4e80be95ca07bf2b6b
|
|
| BLAKE2b-256 |
e240be6e7dfdfdfbbb72a6d65e27cc2c3388139ab3858fb8a846ef160e45d790
|