Grand Diomande Research · Full HTML Reader

SAN Training Status - Verified vs Unverified

This page replaces the old "SAN Training V5" narrative. The old page stated dataset counts and validation loss as facts without pointing to local artifacts. The current rule is simple: training claims need files.

Embodied Trajectory Systems research note experiment writeup candidate score 24 .md

Full Public Reader

SAN Training Status - Verified vs Unverified

This page replaces the old "SAN Training V5" narrative. The old page stated
dataset counts and validation loss as facts without pointing to local artifacts.
The current rule is simple: training claims need files.

Verified Local Runtime Artifacts

Found in MotionMixApp:

text
Desktop/MotionMixApp/MotionMixApp/Resources/san_weights.bin
Desktop/MotionMixApp/MotionMixApp/Resources/san_manifest.json

Current manifest inspection:

text
weights size:       656,992 bytes
manifest size:        8,450 bytes
manifest entries:        76
total parameters:   164,248

This proves there is a local SAN weight artifact compatible with the binary
manifest loader. It does not prove the training dataset, validation loss, or model
quality by itself.

Verified Training Capture Code

Source: `MotionMixApp/Services/SANTrajectoryLogger.swift`.

The logger writes schema v2 JSONL:

json
{
  "schema_version": 2,
  "dims": 128,
  "ts": 0.0,
  "frame": 0,
  "bar": null,
  "track_name": null,
  "track_time": null,
  "input": [128 floats],
  "audio_kick": [5 floats],
  "audio_hihat": [5 floats],
  "audio_bass": [5 floats],
  "audio_pad": [5 floats],
  "camera_scores": [7 floats],
  "cut_timing": 0.0,
  "pattern_intensity": 0.0,
  "pattern_variation": 0.0,
  "phrase": [4 floats],
  "gesture_probs": [8 floats],
  "phase": 0.0,
  "regime": 0,
  "calibration_confidence": 0.0,
  "latency_us": 0.0
}

Local storage:

text
Documents/san-training/<session-id>.jsonl

Remote streaming endpoint in source:

text
http://[ip]:9471/san-frame

Network format:

text
Content-Type: application/x-ndjson
X-MotionMix-SAN-Session: <session-id>
X-MotionMix-SAN-Schema: 2
X-MotionMix-SAN-Dims: 128

Verified Runtime Loading Code

Source: `SANService.loadWeights()`.

The app attempts to load weights from:

1. app bundle;
2. Documents directory.

Then it calls:

swift
san_load_weights(sanHandle, basePtr, binData.count, manifestPtr)

Rust returns:

text
positive integer: loaded parameter count
-1: null pointer
-2: manifest UTF-8 issue
-3: manifest JSON parse issue
-4: binary/shape/bounds issue

Unverified Old Claims

Do not repeat these as current facts unless their artifacts are found:

  • "V5 is 135,000 parameters."
  • "V5 trained on 5,408 real performance pairs."
  • "Validation loss was 0.028."
  • "Training ran from `/Volumes/HD1/training-phrases/train_san_v5.py`."
  • "The current deployed weights are from that exact run."

They may be historically true, but this documentation set is now source-grounded.
Historical claims need a training log, run directory, manifest, or checkpoint note.

Current Hard Evidence From MASTER-TASKS

`Desktop/MotionMixApp/MASTER-TASKS.md` is more cautious than the old docs. At
that checkpoint it says:

text
L1 FAN: built/wired, self-calibrating
L2 FuseMoE: built/wired, not trained
L3 NHA: built/wired, not trained
L4 TTT: built/wired, partial
L5 heads: built/wired, not trained
ConditioningEncoder: shell, wired, not trained
FlowGenerator1Step: shell, wired, not trained
Training loop: not built

This does not mean the system stayed in that state forever. It means every later
claim must point to a later artifact.

What A Real SAN Training Report Must Include

A valid future training report should include:

  • training data path;
  • count of JSONL files;
  • count of accepted frames;
  • schema version;
  • input dimensionality;
  • target fields;
  • split method;
  • optimizer and learning rate;
  • checkpoint path;
  • manifest path;
  • binary weight path;
  • parameter count;
  • validation metrics;
  • on-device load count;
  • on-device non-flat output test;
  • latency distribution;
  • `mixFactor` test at 0.0, 0.25, 0.5, 0.75, 1.0.

Without that report, docs should say "weights exist" rather than "model is
trained and validated."

Current Safe Summary

SAN has:

  • implemented Rust layers;
  • implemented Swift wrapper;
  • local bundled weights;
  • local and remote JSONL capture;
  • a settings-controlled mix factor.

SAN still needs:

  • a current training provenance report;
  • live output sanity checks;
  • consumer influence checks;
  • current validation numbers tied to the exact artifact in `Resources/`.

Promotion Decision

Attach run IDs, datasets, metrics, and reproduction commands.

Source Anchor

computational-choreography/05-training-and-learning/san-training-v5.md

Detected Structure

Method · Evaluation · Code Anchors · Architecture