README.md
October 19, 2025 ยท View on GitHub
This project is looking for a new maintainer. Reach out to Gregor if you're interested!
Tonic is a tool to facilitate the download, manipulation and loading of event-based/spike-based data. It's like PyTorch Vision but for neuromorphic data!
Documentation
You can find the full documentation on Tonic on this site.
- A first example to get a feeling for how Tonic works.
- Run tutorials in your browser quick and easy.
- List of datasets.
- List of transformations.
- About this project.
- Release notes on version changes.
Install
For users
pip install tonic
or (thanks to @Tobias-Fischer)
conda install -c conda-forge tonic
For the latest pre-release on the develop branch that passed the tests:
pip install tonic --pre
For developers
We recommend using uv for development:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/neuromorphs/tonic.git
cd tonic
# Install dependencies and tonic in editable mode
uv sync --extra dev
# Run tests
uv run pytest test/
This package has been tested on:
| Platform | Python Versions | Status |
|---|---|---|
| Linux | 3.10, 3.11, 3.12 | |
| macOS (ARM64) | 3.10, 3.11, 3.12 | |
| Windows | 3.10, 3.11, 3.12 |
Quickstart
If you're looking for a minimal example to run, this is it!
import tonic
import tonic.transforms as transforms
sensor_size = tonic.datasets.NMNIST.sensor_size
transform = transforms.Compose(
[
transforms.Denoise(filter_time=10000),
transforms.ToFrame(sensor_size=sensor_size, time_window=3000),
]
)
testset = tonic.datasets.NMNIST(save_to="./data", train=False, transform=transform)
from torch.utils.data import DataLoader
testloader = DataLoader(
testset,
batch_size=10,
collate_fn=tonic.collation.PadTensors(batch_first=True),
)
frames, targets = next(iter(testloader))
Discussion and questions
Have a question about how something works? Ideas for improvement? Feature request? Please get in touch on the #tonic Discord channel or alternatively here on GitHub via the Discussions page!
Contributing
Please check out the contributions page for details.
Sponsoring
The development of this library is supported by
Citation
If you find this package helpful, please consider citing it:
@software{lenz_gregor_2021_5079802,
author = {Lenz, Gregor and
Chaney, Kenneth and
Shrestha, Sumit Bam and
Oubari, Omar and
Picaud, Serge and
Zarrella, Guido},
title = {Tonic: event-based datasets and transformations.},
month = jul,
year = 2021,
note = {{Documentation available under https://tonic.readthedocs.io}},
publisher = {Zenodo},
version = {0.4.0},
doi = {10.5281/zenodo.5079802},
url = {https://doi.org/10.5281/zenodo.5079802}
}