{"id":50974411,"url":"https://github.com/broomva/alpine-cabin","last_synced_at":"2026-06-19T06:02:39.720Z","repository":{"id":358754494,"uuid":"1242924798","full_name":"broomva/alpine-cabin","owner":"broomva","description":"Open-source design + interactive digital twin of a 6×7 m elevated alpine A-frame cabin on rock outcroppings. Parametric CAD (build123d), auto-generated BOM, budget, and step-by-step construction guide.","archived":false,"fork":false,"pushed_at":"2026-05-19T00:46:33.000Z","size":11966,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-19T00:56:51.545Z","etag":null,"topics":["a-frame-cabin","alpine-cabin","bstack","build123d","digital-twin","glamping","open-source-construction","oss-hardware","parametric-cad","three-js"],"latest_commit_sha":null,"homepage":"https://broomva.github.io/alpine-cabin/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/broomva.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-18T22:19:43.000Z","updated_at":"2026-05-19T00:46:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/broomva/alpine-cabin","commit_stats":null,"previous_names":["broomva/alpine-cabin"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/broomva/alpine-cabin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broomva%2Falpine-cabin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broomva%2Falpine-cabin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broomva%2Falpine-cabin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broomva%2Falpine-cabin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broomva","download_url":"https://codeload.github.com/broomva/alpine-cabin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broomva%2Falpine-cabin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34519052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a-frame-cabin","alpine-cabin","bstack","build123d","digital-twin","glamping","open-source-construction","oss-hardware","parametric-cad","three-js"],"created_at":"2026-06-19T06:02:38.542Z","updated_at":"2026-06-19T06:02:39.713Z","avatar_url":"https://github.com/broomva.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cabaña Alpina — Construcción Open Source\n\nCabaña tipo A-frame de 6 × 7 m elevada sobre plataforma de acero, apoyada en peñas de roca existentes. Liberada en open source desde M0 para que cualquiera pueda hacer fork del diseño, del listado de materiales y de la bitácora de obra.\n\n**🌐 Página interactiva**: **\u003chttps://broomva.github.io/alpine-cabin/\u003e** · 📐 STEP/STL en [`cad/exports/`](cad/exports/) · 📄 [README in English](README.en.md)\n\n![Cabaña de referencia](assets/reference/01-reference-cabin.png)\n\n## Modelo 3D paramétrico\n\nGenerado con [build123d](https://github.com/gumyr/build123d) desde [`cad/params.toml`](cad/params.toml). Las 4 vistas se regeneran automáticamente con `make render`.\n\n| | | |\n|---|---|---|\n| ![Vista isométrica](assets/renders/cabin-iso.png) | ![Vista frontal](assets/renders/cabin-front.png) | |\n| Vista isométrica | Vista frontal — gable de vidrio | |\n| ![Vista lateral](assets/renders/cabin-side.png) | ![Vista cenital](assets/renders/cabin-top.png) | |\n| Vista lateral — pórticos A-frame | Vista cenital | |\n\n## Estado\n\n**M0.4 — Digital twin paramétrico + governance OSS.** `cad/params.toml` es fuente única de verdad. El BOM, el modelo CAD (STEP/STL/GLTF) y la página interactiva derivan automáticamente. Las dimensiones siguen siendo **preliminares** — perfiles, anclajes, soldaduras y arriostramientos finales deben ser validados por un ingeniero estructural matriculado, después de un estudio geotécnico del sitio.\n\n[![CI](https://github.com/broomva/alpine-cabin/actions/workflows/validate.yml/badge.svg)](https://github.com/broomva/alpine-cabin/actions/workflows/validate.yml)\n[![Pages](https://github.com/broomva/alpine-cabin/actions/workflows/pages.yml/badge.svg)](https://broomva.github.io/alpine-cabin/)\n[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-blue.svg)](LICENSE)\n\n### Página interactiva\n\nLa página tiene 7 tabs con el diseño completo: overview, guía de construcción paso a paso (140+ sub-pasos), parámetros editables en vivo, BOM, presupuesto, viewer 3D y un asistente de progreso que guarda checkpoints en `localStorage`.\n\n![Overview](assets/dogfood/overview.png)\n*Tab Overview — viewer 3D + KPIs en vivo + summary cards*\n\n## Qué hay en este repo\n\n| Archivo | Propósito |\n|---|---|\n| [`SPEC.md`](SPEC.md) | Especificación dimensional + sistema (plataforma, A-frame, envolvente) |\n| [`BOM.md`](BOM.md) | Listado de materiales — **auto-generado** desde `cad/params.toml` |\n| [`PRESUPUESTO.md`](PRESUPUESTO.md) | Presupuesto referencial Co/2026 — BOM con precios, mano de obra, indirectos, IVA, total |\n| [`ARCHITECTURE.md`](ARCHITECTURE.md) | Arquitectura del **digital twin** — pipeline params → BOM/CAD/HTML + decisiones |\n| [`cad/params.toml`](cad/params.toml) | **Fuente única de verdad** — geometría, perfiles, alturas de columna |\n| [`cad/prices.toml`](cad/prices.toml) | **Fuente única de verdad** — precios Co/2026 |\n| [`cad/cabin.py`](cad/cabin.py) | Modelo paramétrico build123d → STEP + STL + GLB |\n| [`web/index.html`](web/index.html) | Página interactiva — viewer 3D + sliders + KPIs en vivo |\n| [`docs/SITE.md`](docs/SITE.md) | Contexto del sitio — terreno, peñas de roca, vegetación, pendiente |\n| [`docs/REFERENCE.md`](docs/REFERENCE.md) | Intención de diseño + decisiones críticas para el ingeniero |\n| [`docs/NOTES.md`](docs/NOTES.md) | Preguntas abiertas, bitácora de decisiones, hitos |\n| [`assets/reference/`](assets/reference/) | Foto cabaña de referencia, foto del sitio, infografía del sistema |\n\n## Cómo correr el digital twin localmente\n\n```bash\nmake setup     # crea venv + instala build123d + jinja2 (una vez)\nmake all       # regenera BOM + CAD + datos del HTML desde params.toml\nmake serve     # sirve la página en http://localhost:8765\nmake validate  # verifica que el GLB coincide con params.toml (regression test)\nmake render    # regenera los 4 PNG en assets/renders/\nmake dogfood   # Playwright recorre las 7 tabs y captura screenshots\n```\n\nPara experimentar:\n1. Mueve los sliders en https://broomva.github.io/alpine-cabin/ (tab Parámetros).\n2. Descarga el experimento como JSON (botón \"Descargar experimento JSON\").\n3. Aplica el JSON al repo con `python cad/apply_experiment.py path/al/experimento.json` — esto actualiza `cad/params.toml`, regenera BOM/CAD/web data, y te sugiere el commit.\n4. Push → la página live re-deploya con tu diseño.\n\nAlternativa directa: edita `cad/params.toml` y corre `make all`.\n\nVer [`ARCHITECTURE.md`](ARCHITECTURE.md) para el diseño completo del sistema.\n\n## Concepto\n\n- **Huella**: plataforma elevada 6.0 × 7.0 m (42 m²)\n- **Cabaña cerrada**: ~6.0 × 5.0 m (30 m²)\n- **Terraza frontal**: 6.0 × 2.0 m (12 m²)\n- **Cubierta**: A-frame, ápice ~6.2 m, lámina metálica negra tipo standing seam\n- **Apoyo**: 9 columnas metálicas (malla 3 × 3) ancladas a peñas existentes\n- **Estructura**: plataforma metálica + pórticos A-frame cada ~1.0 m\n- **Envolvente**: ventanal frontal piso-techo, gable trasero en madera tratada, cielo raso interior en machimbre\n\nEl sistema reutiliza las peñas de roca naturales del sitio como cimentación — mínimo movimiento de tierra, mínimo concreto. Ver la infografía del sistema:\n\n![Infografía del sistema](assets/reference/03-system-infographic.png)\n\n## Licencia\n\n- **Planos, dibujos, documentación, BOM** — [Creative Commons Atribución-CompartirIgual 4.0](LICENSE) (CC-BY-SA-4.0)\n- **Scripts / herramientas futuras** — Apache-2.0 (se agregarán bajo `tools/` con un `LICENSE-CODE` separado cuando aparezcan)\n\nEres libre de usar, hacer fork, modificar y construir a partir de estos planos. Si publicas derivados, compártelos bajo la misma licencia y dale crédito a `broomva/alpine-cabin`.\n\n## Aviso de ingeniería\n\nNada en este repositorio sustituye planos firmados por un ingeniero matriculado, un estudio geotécnico ni una licencia de construcción que cumpla la normativa local. Quien construya a partir de estos documentos lo hace bajo su propio riesgo y debe contratar profesionales licenciados (ingeniero estructural, ingeniero geotécnico, autoridad de construcción local) antes de empezar la obra. El autor no asume ninguna responsabilidad por estructuras construidas a partir de estos documentos.\n\n## Contribuciones\n\nIssues y PRs bienvenidos. Si quieres proponer un cambio de diseño, abre primero un issue para que la discusión quede buscable.\n\n## Procedencia del proyecto\n\nIniciado bajo la disciplina [bstack](https://github.com/broomva/bstack) en `~/broomva/builds/alpine-cabin/`. Ver [`CLAUDE.md`](CLAUDE.md) para el contrato de gobernanza que aplica a ediciones hechas por agentes en este repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroomva%2Falpine-cabin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroomva%2Falpine-cabin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroomva%2Falpine-cabin/lists"}