llll-chart2sus is a Python-first converter for transforming Link! Like! LoveLive! chart JSON into Project SEKAI community .sus charts.
The repository focuses on conversion logic, command-line usage, and reproducible local validation for .sus output.
- Deterministic, reproducible conversion output
- Inspectable mapping from source JSON to
.susevents - Validation through both Python and Rust parser stacks
src/llll_chart2sus/: conversion pipeline and CLItests/: converter testsscripts/: bootstrap and doctor scriptsexamples/: sample source JSON and generated.sus/.svg
pwsh ./scripts/bootstrap_toolchain.ps1The bootstrap script:
- Installs/checks the
rustupstable toolchain. - Creates
.venvwith Python 3.10 viauv. - Installs this project in editable mode with dev dependencies.
uv run python -m llll_chart2sus convert --input .\examples\rhythmgame_chart_203115_04.bytes.json --output .\tmp\203115_04.susCurrent implementation status:
- Basic
Single/Flick/Tracemapping is supported. - Hold-chain mapping is intentionally not implemented yet.
- Unsupported hold-chain data fails loudly with note
uid/timing.
uv run python -m llll_chart2sus validate --sus .\tmp\103103_01.sus --svg-out .\tmp\103103_01.svgValidation path:
- Parse and sanity-check generated
.sus. - Render to SVG for visual inspection.
Optional cross-check with reference validators:
scores (Python parser):
Repository: pjsekai/scores
cd .\scores
python -m pjsekai.scores ..\tmp\203115_04.suspjsekai-scores-rs (Rust parser/renderer):
Repository: Team-Haruki/pjsekai-scores-rs
cd .\pjsekai-scores-rs
cargo run -- ..\tmp\203115_04.sus -o ..\tmp\203115_04.rust.svguv run python -m llll_chart2sus doctor
pwsh ./scripts/doctor.ps1- Keep conversion behavior explicit and traceable.
- Prefer adding focused tests for each mapping behavior change.
- This project is a fan-made reverse-engineering/conversion tool for research and interoperability purposes.
- This repository is not affiliated with, endorsed by, or sponsored by the rights holders of Link! Like! LoveLive! or Project SEKAI.
- Game assets, charts, names, and related intellectual property belong to their respective owners.
- Users are responsible for complying with local laws, platform terms, and copyright/licensing requirements.
- Do not use this project for unauthorized commercial distribution of copyrighted content.
This project is licensed under the MIT License. See LICENSE.