| # Oasis Action World Model Integration |
|
|
| ADAM treats Oasis as a first-class trainer named `Oasis Action World Model`. |
| It uses the existing `Oasis-Game-Trainer/roblox_action_flow_app.py` worker and |
| keeps training and playable inference in separate processes. |
|
|
| ## Dataset Layout |
|
|
| Use one or more recorder folders. Multiple folders can be supplied with |
| semicolon separators. |
|
|
| ```text |
| My_Oasis_Dataset/ |
| dataset_info.json |
| actions.jsonl |
| frames/ |
| frame_00000000.png |
| frame_00000001.png |
| ``` |
|
|
| Each `actions.jsonl` row must identify the frame and its labels: |
|
|
| ```json |
| {"session_id":"run1","frame_index":1,"filename":"frame_00000001.png","w":1,"a":0,"s":0,"d":0,"jump":0,"mouse_dx":0.0,"mouse_dy":0.0,"zoom":0.0} |
| ``` |
|
|
| Rows describe the action for the transition into that frame. ADAM validates |
| missing frames, invalid labels, duplicate or gapped frame indexes, broken |
| images, inconsistent resolutions, empty sequences, and missing action columns. |
| It does not guess missing labels. |
|
|
| ## Minecraft Beta-Style Recording Notes |
|
|
| Record your own gameplay. Start with `256x144` at 8-12 FPS for a first pipeline |
| test, then increase data before long runs. Keep every clip as its own session or |
| recording folder so training never learns fake transitions between worlds. |
|
|
| Capture a mix of walking forward, strafing, turning, jumping, climbing, terrain |
| changes, interiors, caves, water, sky, and short idle moments. Avoid long |
| standing-still stretches; idle is useful, but a dataset dominated by idle frames |
| will make the model ignore controls. |
|
|
| A good smoke dataset is 300-1,000 labelled frames. A more meaningful first |
| Minecraft experiment is 5,000-20,000 labelled frames with clean W/A/S/D/Space |
| coverage and synchronized frame/action timestamps. |
|
|
| ## RTX 3060 12 GB Starting Point |
|
|
| Use `256x144`, batch size `2`, mixed precision `fp32`, gradient accumulation |
| `1`, prediction horizon `3`, loader workers `2`, save every `5` epochs, preview |
| every `5` epochs, and 5-10 epochs for a pipeline test. Try `fp16` only after |
| FP32 is stable. |
|
|