{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/lfrancke/murmelbahn/blob/8d7974a5d67b1387032fd475b9a8de6b8a567544/CHANGELOG.md"
  ],
  "category": "reconstruction-cases",
  "class": "apps",
  "description_en": "Murmelbahn decodes GraviTrax course data obtained through the Ravensburger app API and presents course details and bills of materials in a web app. The author used ImHex to work out changing file formats and includes a schema and parser for recent course versions.",
  "description_zh": "Murmelbahn 解析通过 Ravensburger 应用接口取得的 GraviTrax 轨道数据，并在网页中展示轨道信息及材料清单。作者使用 ImHex 研究多次变化的文件格式，项目提供格式模式和处理较新版本的解析器。",
  "entry_url": "https://awesomerea.org/resources/murmelbahn-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/murmelbahn-case/",
  "evidence_url": "https://github.com/lfrancke/murmelbahn/blob/8d7974a5d67b1387032fd475b9a8de6b8a567544/README.md",
  "group": "cases",
  "id": "murmelbahn-case",
  "json_url": "https://awesomerea.org/resources/murmelbahn-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/murmelbahn-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/murmelbahn-case/index.md",
  "name": "Murmelbahn: decoding GraviTrax course files",
  "name_zh": "Murmelbahn：解析 GraviTrax 轨道文件",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "The documented build uses Rust, a frontend npm build, and a PostgreSQL DATABASE_URL.",
    "Course parsing covers the latest three format generations, dating from after 2020.",
    "Apache-2.0."
  ],
  "requirements_zh": [
    "文档所述构建需要 Rust、前端 npm 构建流程及 PostgreSQL 的 DATABASE_URL。",
    "轨道解析覆盖 2020 年之后的最近三个格式世代。",
    "采用 Apache-2.0 许可证。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/lfrancke/murmelbahn",
  "verification": "source-reviewed",
  "verified_at": "2026-11-08"
}
