If you ever drove in Spain, you might notice their affinity for roundabouts. If you enter a system of 3 roundabouts in a village and take not of both the cars infront and behind you, by the last roundabout its highly probably you wont be between the same two neighbors.
Instead of a black-box shuffle, you get a tunable process with real controls: routing bias, merge randomness, recirculation depth, and injection strategy. The result is near-classic shuffle quality with more visibility and control.
- For data and systems teams: mix ordered streams before downstream processing without relying on one monolithic random shuffle step.
- For simulation and research: study queueing, congestion, and mixing quality in one model.
- For product and game systems: produce high-entropy but reproducible event ordering from seed-based runs.
Benchmark Snapshot
Our optimized roundabout shuffler is now close to standard random shuffling quality.
- Kendall-tau:
0.4907(optimized) vs0.5030(Fisher-Yates) -> 97.5% of Fisher-Yates mixing. - Chi-squared uniformity p-value:
0.5858(optimized) vs0.5546(Fisher-Yates) -> both pass. - Bit bias:
+0.0051(optimized) vs+0.0085(Fisher-Yates) -> both near zero. - Total variation distance:
0.0835(optimized) vs0.0824(Fisher-Yates).
In short: this is not just a metaphor. It delivers near Fisher-Yates quality while staying interpretable, tunable, and simulation-friendly.
Package Usage
pip install -e .
roundamix --profile optimized --size 14 --seed 42
roundamix-benchmark --size 14 --trials 300
You can also run without installing:
python -m roundamix --profile optimized --size 14 --seed 42
python -m roundamix.benchmark --size 14 --trials 300
Metadata
Release files for roundamix 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| roundamix-0.1.1.tar.gz | 16.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| roundamix-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.2 kB
Release files / roundamix-0.1.1.tar.gz
| Download URL | roundamix-0.1.1.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44adca16943178938a41c29dfd29d9dc1653ef6c85f9d23652a85c1ce79d8ce9
|
|
BLAKE2b-256 checksum How to use checksums |
5315f03443ea80360f8c49532585ff303eb96c90ad1abc88c6444fe2bac50164
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / roundamix-0.1.1-py3-none-any.whl
| Download URL | roundamix-0.1.1-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35d4fb0d8f75a9283cadecd63ef5dacf612eda8f7e591dc6bd225eff176923e6
|
|
BLAKE2b-256 checksum How to use checksums |
7460ec8c1ef8fdf8cd77e66d847a90e4c70c61df08ba2cdbaf584f045f8946a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|