Skip to content

Commit cd512e6

Browse files
committed
Add sponsor badge
1 parent 4e024c6 commit cd512e6

1 file changed

Lines changed: 119 additions & 0 deletions

File tree

README.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github)](https://github.com/sponsors/hyperpolymath)
2+
3+
// SPDX-License-Identifier: MPL-2.0
4+
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
5+
= Anvomidaviser
6+
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
7+
:toc: left
8+
:icons: font
9+
10+
== What Is This?
11+
12+
Anvomidaviser converts **ISU (International Skating Union) notation** into formal
13+
figure skating programs via **Anvomidav** — the first programming language for
14+
figure skating choreography.
15+
16+
The pipeline: ISU notation -> formal choreography models -> scoring validation -> program component analysis.
17+
18+
Anvomidaviser bridges existing notation systems (ISU element codes, IJS protocols,
19+
Code of Points tables) to formally verified Anvomidav programs.
20+
21+
== How It Works
22+
23+
Describe your program in `anvomidaviser.toml` or import ISU protocols. Anvomidaviser:
24+
25+
1. **Parses** ISU element codes — jumps (`3Lz`, `4T+3T`), spins (`CCoSp4`), steps (`StSq3`), lifts
26+
2. **Validates** against ISU technical rules — Zayak rule, element counts, well-balanced requirements
27+
3. **Scores** using the Code of Points — base values, GOE adjustments, PCS, deductions
28+
4. **Generates** formal Anvomidav programs with timing, transitions, and rink positions
29+
5. **Outputs** score sheets, validation reports, and choreography files
30+
31+
== Use Cases
32+
33+
* **Competition program planning** — build programs, check legality, estimate scores before training
34+
* **Judging consistency checks** — verify scores against ISU rules programmatically
35+
* **Training feedback** — track element difficulty progression across seasons
36+
* **Coaching tools** — visualise program layout, timing, and transitions
37+
38+
== Architecture
39+
40+
Follows the hyperpolymath -iser pattern:
41+
42+
```
43+
anvomidaviser.toml (manifest)
44+
|
45+
v
46+
ISU Parser (Rust CLI)
47+
|
48+
v
49+
Idris2 ABI (proves scoring rule correctness)
50+
|
51+
v
52+
Zig FFI (C-ABI bridge to scoring engine)
53+
|
54+
v
55+
Anvomidav Codegen (formal program descriptions)
56+
```
57+
58+
Part of the https://github.com/hyperpolymath/iseriser[-iser family].
59+
60+
== CLI Commands
61+
62+
[source,bash]
63+
----
64+
# Create a new manifest
65+
anvomidaviser init
66+
67+
# Validate a manifest against ISU rules
68+
anvomidaviser validate -m anvomidaviser.toml
69+
70+
# Generate Anvomidav program and score sheets
71+
anvomidaviser generate -m anvomidaviser.toml -o generated/
72+
73+
# Build generated artifacts
74+
anvomidaviser build -m anvomidaviser.toml --release
75+
76+
# Run the scoring engine
77+
anvomidaviser run -m anvomidaviser.toml
78+
79+
# Show manifest information
80+
anvomidaviser info -m anvomidaviser.toml
81+
----
82+
83+
== Example Manifest
84+
85+
[source,toml]
86+
----
87+
[workload]
88+
name = "ladies-short-2026"
89+
discipline = "ladies-single"
90+
segment = "short-program"
91+
92+
[elements]
93+
jump_1 = "3Lz+3T"
94+
spin_1 = "FCSp4"
95+
step_seq = "StSq4"
96+
jump_2 = "3F"
97+
spin_2 = "CCoSp4"
98+
jump_3 = "2A"
99+
spin_3 = "LSp4"
100+
101+
[program]
102+
music = "Clair de Lune"
103+
duration_seconds = 160
104+
105+
[output]
106+
format = "anvomidav"
107+
score_sheet = true
108+
validation_report = true
109+
----
110+
111+
== Status
112+
113+
**Pre-alpha / Codebase in progress.**
114+
Architecture defined, CLI scaffolded, bespoke Idris2 ABI types for ISU scoring,
115+
Zig FFI stubs with anvomidaviser symbols. Codegen and scoring engine pending.
116+
117+
== License
118+
119+
SPDX-License-Identifier: MPL-2.0

0 commit comments

Comments
 (0)