DanceGAIHow OsuGAI works

How OsuGAI works

OsuGAI turns a song into an osu! standard mapset: hit circles, sliders and spinners arranged across the playfield. It plans the song, writes the rhythm, places the objects and checks the result. This page describes v3.0, released on October 30, 2026.

On this page
  1. 01Music understanding
  2. 02Planning the song
  3. 03Rhythm and objects
  4. 04Placement and geometry
  5. 05Checks before download

v3.0 measurements

Training charts
157,209
Model parameters
~77M
Training compute
~78 GPU·h
Average star miss in the calibration test
0.28★
Valid maps in the validity test
36 / 36
Flower Dance · 6 difficulties · T4
79 s

The star result is from 3 songs, 4 targets and one seed per target; 2 songs were in the training data. The separate validity test used 3 seeds. These are small test panels, not a general quality guarantee.

Music understanding

Beat This detects beats and downbeats. Our timing-grid fitting turns them into BPM and offset, including variable tempo. MERT-v1-95M supplies musical features aligned beat by beat. Training maps use the same kind of grid. Quiet intros, outros and fade-outs are detected so the generator can leave silence empty.

Beat This · MERT-v1-95M

Planning the song

A Gaussian diffusion planner, about 5.9 million parameters, describes the whole song section by section before any object is placed. It plans difficulty, style and breaks together, conditioned on the music and requested settings. A chorus can become denser while a quiet bridge becomes a rest.

Rhythm and objects

The main model writes presses and releases, object types, slider reverses, new combos, breaks and slider velocity. It is a MaskGIT-style non-autoregressive transformer: it refines the whole map in several passes rather than writing only from left to right. Rhythm is generated and cleaned before object details and velocity are added.

Placement and geometry

One shared network of about 71 million parameters handles rhythm and placement, reusing its understanding of the music. A constraint solver keeps objects inside the playfield, fits slider curves to their required length and writes velocity changes. A difficulty that cannot be built cleanly fails instead of producing a broken file. None of 24,000 stress-test runs required that failure path.

What you can control

Choose targets from ★1 to ★10, with separate settings for each difficulty. Nine style controls cover properties such as sliders, angles, spacing, rhythm, aim and speed. Map settings include CS, AR, OD, HP and slider velocity. The model reads CS, AR, OD and velocity; HP is written to the file. The requested difficulties are generated together as one mapset.

Star targets are requests; the downloaded maps show their measured difficulty.

Checks before download

The system cleans unplayably close presses and excessively short holds, removes objects in silence and checks geometry. osu!’s algorithm measures the final star rating; that measured value names the difficulty. Testing also parses maps with osu!lazer. Ten repeated runs with the same song, settings and seed produced byte-identical .osu files.

Training data

The corpus contains 157,209 charts: 132,032 ranked, approved or loved charts, plus 25,177 high-star additions from outside the ranked section. The base set contains about 56 million objects. Gimmick maps, AI-generated maps and songs matching validation or test data are excluded from the high-star selection. Splits keep every difficulty and audio version of a song together. A blind set of 200 songs ranked in 2026 is held back from training.

Training

The planner and main network were trained from scratch. The main network trained for about 1.03 million steps, first on the ranked corpus and then with high-star maps, ending with star-balanced sampling. The planner trained for 60,000 steps. Training used one RTX 4070 Ti SUPER: about 68 GPU-hours for the main network and 10 for the planner. Checkpoints were selected by generated maps, not validation loss alone.

What we measured

The calibration panel below has an average absolute miss of 0.28 stars. It checks calibration on a small set; it does not establish performance on unseen music, and ★9–★10 were not tested. A separate panel produced 36 valid maps out of 36 across 3 songs, 4 targets and 3 seeds. In the final evaluation, cleanup removed the raw model’s 3.9 rhythm problems per 1,000 objects.

Calibration panel · v3.0 · one seed per target
★Flower DanceRiver Flows in YouFREEDOM DiVE
21.921.892.38
43.633.904.61
65.495.536.02
88.278.108.38

Break planning recovered 50% of human breaks and covered 35% of human break time on a 24-map panel. About 60% of generated breaks matched a human break. With the right plan, the network placed the exact break count on 23 of 24 maps. Those break measurements used the released planner with an earlier network; they are not a full evaluation of the released system.

From Create to a playable map

Your browser decodes and normalises the audio before upload. The service extracts timing and music features once, plans the requested difficulties and generates them together in a batched GPU pass. Cleanup, star measurement and packaging produce a .osz with the song and background. These production NVIDIA T4 timings use Flower Dance; they are examples, not promised waiting times.

Production T4 timings · Flower Dance
RequestTime
1 difficulty21–32 s
3 difficulties42 s
4 difficulties54 s
6 difficulties · automatic spread79 s
9 difficulties116 s

How v3.0 differs

v2.0 used separate rhythm and placement models. v3.0 shares one network, expands training from 10,428 to 157,209 charts, plans breaks, adds variable slider velocity and exposes per-difficulty style and map settings. On Flower Dance with a T4, the recorded runs were 72 seconds for 4 difficulties in v2.0 and 79 seconds for 6 in v3.0; these are different workloads, not a speed ratio.

Known limitations

  • In the small calibration test, ★4–★6 tended to land below target and ★8 slightly above. ★9–★10 were not evaluated there.
  • About half of human breaks are still missed, and some generated breaks are misplaced.
  • Some songs receive too many spinners, especially at low stars. Slider shapes remain deliberately simple.
  • Small timing errors can accumulate into drift on long, fast songs.
  • New combos follow a fixed rule. There are no custom hitsounds, kiai sections or storyboards.
  • Structural validity does not establish that a map is fun or well designed. Generated maps are for playing and practice, not the ranked section.

What we are working on

Better break placement, calibration across the full star range, richer slider shapes and faster generation. Blind-test results and slider self-crossing measurements for v3.0 have not been published. TaikoGAI and CatchGAI remain future products.

Related technical reading

Create with OsuGAI