{
  "markdown": "# grammar-guided-preference-data\n\nGrammar-guided synthetic preference data for cheap self-improvement in\nrobot perception. A VLM (\"MiniCPM-V 4.6\" — working assumption, grounding\nunverified, see [`docs/architecture.md`](docs/architecture.md)) proposes\ncandidate scene descriptions for each camera frame, a grammar constrains\nits output to a fixed JSON schema, and the robot's own control stack\n(IK feasibility + Ruckig trajectory safety) automatically labels each\ncandidate CHOSEN/REJECTED — building a DPO preference dataset with zero\nhuman labeling, used for periodic cheap \"micro-anneal\" fine-tunes.\n\nStart at [`docs/index.md`](docs/index.md) for the full picture.\n\n## Layout\n\n- `runtime/` — Rust workspace: the on-device real-time loop (targets\n  Raspberry Pi, aarch64).\n- `training/` — Python package: the offline DPO micro-anneal (dev\n  machine, not the Pi).\n- `simulation/` — Python package: a MuJoCo-based training-time physical\n  judge with a live viewer, feeding `data/preference_pairs/*.jsonl`\n  alongside the Rust runtime's judge.\n- `data/preference_pairs/` — shared JSONL, the interface between the\n  runtime and training/simulation components.\n- `docs/` — documentation bundle, start here.\n\n## Quick start\n\n```\ncd runtime && cargo test --workspace\ncd training && uv run pytest\ncd simulation && uv run pytest\n```\n",
  "bytes": 1325,
  "sha": "52f870214fc1683043843c3d0295be7b676fde5208954e187ab7547b678d69e5",
  "repo_slug": "divyarthjain/grammar-guided-preference-data",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_divyarthjain_grammar_guided_preference_d_9021a801/readme"
}