Add your description here
Project description
TokEye
TokEye is a open-source Python-based application for automatic classification and localization of fluctuating signals. It is designed to be used in the context of plasma physics, but can be used for any type of fluctuating signal.
Check out this poster from APS DPP 2025 for more information.
Example Demonstration
Expected processing time:
- A100: < 0.5 seconds on any size spectrogram after warmup.
- CPU: not yet tested.
Verified Datatypes
- DIII-D Fast Magnetics (cite)
- DIII-D CO2 Interferometer (cite)
- DIII-D Electron Cyclotron Emission (cite)
- DIII-D Beam Emission Spectroscopy (cite)
Evaluation
Recall Scores:
- TJII2021: 0.8254
- DCLDE2011 (Delphinus capensis): 0.7708
- DCLDE2011 (Delphinus delphis): 0.7953
With more data, comes better models. Please contribute to the project!
Installation
uv (recommended)
git clone git@github.com:PlasmaControl/TokEye.git
cd TokEye
uv sync
pip (from source)
git clone git@github.com:PlasmaControl/TokEye.git
cd TokEye
python3 -m venv .venv
source venv/bin/activate
pip install uv
uv sync
pip (from PyPI)
pip install tokeye
Coming soon.
Containerized installation (Docker) Coming soon.
Usage
python -m TokEye.app
This will start a web app on http://localhost:8888.
If you are on a remote server, you can use SSH port forwarding to access the web app on your local machine:
ssh -L 8888:localhost:7860 user@remote_server
Then open your web browser and navigate to http://localhost:8888.
Models
Pre-trained models are available at this link.
Copy them into the models/ directory after downloading them.
- big_mode_v1.pt: Original training regime (window = 1024, hop = 128)
- big_mode_v2.pt: Trained on multiscale (multiwindow, multihop) spectrograms
Input should be a tensor that has shape (B, 1, H, W) where B, H, and W can vary Output will be a tensor of shape (B, 2, H, W)
Best performance when spectrograms are oriented so that when they are plotted with matplotlib, the lowest frequency bin is oriented with the bottom when origin='lower'. Spectrograms should be standardized (mean = 0, std = 1). If baseline activity is very strong, clipping the input may help, but is generally not needed.
The first channel of the output will return preferential measurements of coherent activity (useful for most tasks) THe second channel of the output will return preferential measurements of transient activity
Data
Right now, keep all data as 1d numpy float arrays. No need to normalize or preprocess them.
Copy them into the data/ directory.
Citation
If you use this code in your research, please cite:
@article{NaN,
title={Paper not yet published},
author={Nathaniel Chen},
year={2025}
}
Contact
Please check back for updates or reach out to Nathaniel Chen at nathaniel@princeton.edu.
Project details
Release history Release notifications | RSS feed
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 tokeye-0.9.0.tar.gz.
File metadata
- Download URL: tokeye-0.9.0.tar.gz
- Upload date:
- Size: 111.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4ab85243883d23bf8d2833ff446082d614645c86af498acfb5a927f025ceb74
|
|
| MD5 |
230ea8b000fef1a184c41fd7a853a992
|
|
| BLAKE2b-256 |
ccd1baa0a993ad22f6191fd2b73c5728a0e923c59dd62b56a903420157590e73
|
Provenance
The following attestation bundles were made for tokeye-0.9.0.tar.gz:
Publisher:
python-publish.yml on PlasmaControl/tokeye
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tokeye-0.9.0.tar.gz -
Subject digest:
d4ab85243883d23bf8d2833ff446082d614645c86af498acfb5a927f025ceb74 - Sigstore transparency entry: 779993092
- Sigstore integration time:
-
Permalink:
PlasmaControl/tokeye@7b8a898c55f3fe0c66f6e2ad1b65a1ffee7f9b49 -
Branch / Tag:
refs/tags/0.9.1 - Owner: https://github.com/PlasmaControl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@7b8a898c55f3fe0c66f6e2ad1b65a1ffee7f9b49 -
Trigger Event:
release
-
Statement type:
File details
Details for the file tokeye-0.9.0-py3-none-any.whl.
File metadata
- Download URL: tokeye-0.9.0-py3-none-any.whl
- Upload date:
- Size: 150.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a350f9a5b0e173f921867e335798d3c37a31aef8374e2ddbafcf756d1af48806
|
|
| MD5 |
ffb6522df759dd20a0cfaa7847b3c725
|
|
| BLAKE2b-256 |
a3174bad6440a4ee551921de37236498e8585e7e13886b92094c4f19e8c6e4b8
|
Provenance
The following attestation bundles were made for tokeye-0.9.0-py3-none-any.whl:
Publisher:
python-publish.yml on PlasmaControl/tokeye
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tokeye-0.9.0-py3-none-any.whl -
Subject digest:
a350f9a5b0e173f921867e335798d3c37a31aef8374e2ddbafcf756d1af48806 - Sigstore transparency entry: 779993095
- Sigstore integration time:
-
Permalink:
PlasmaControl/tokeye@7b8a898c55f3fe0c66f6e2ad1b65a1ffee7f9b49 -
Branch / Tag:
refs/tags/0.9.1 - Owner: https://github.com/PlasmaControl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@7b8a898c55f3fe0c66f6e2ad1b65a1ffee7f9b49 -
Trigger Event:
release
-
Statement type: