{"id":27748974,"url":"https://github.com/jo/hyperwood","last_synced_at":"2026-01-21T13:25:24.821Z","repository":{"id":288661116,"uuid":"968863505","full_name":"jo/hyperwood","owner":"jo","description":"Hyperwood is an open-source system for crafting furniture from simple wooden slats.","archived":false,"fork":false,"pushed_at":"2025-05-01T18:24:27.000Z","size":13,"stargazers_count":380,"open_issues_count":7,"forks_count":8,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-01-19T22:38:05.649Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hyperwood.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-18T21:56:54.000Z","updated_at":"2026-01-10T21:49:06.000Z","dependencies_parsed_at":"2025-04-21T07:32:37.567Z","dependency_job_id":null,"html_url":"https://github.com/jo/hyperwood","commit_stats":null,"previous_names":["jo/hyperwood"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jo/hyperwood","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Fhyperwood","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Fhyperwood/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Fhyperwood/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Fhyperwood/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jo","download_url":"https://codeload.github.com/jo/hyperwood/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo%2Fhyperwood/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-04-28T23:01:58.294Z","updated_at":"2026-01-21T13:25:24.804Z","avatar_url":"https://github.com/jo.png","language":"Rust","readme":"# Hyperwood – Open-Source Furniture\n\nHyperwood is an open-source system for crafting furniture from simple wooden slats. In the spirit of E.F. Schumacher's _Small is Beautiful_ and inspired by Enzo Mari’s _Autoprogettazione_, Hyperwood empowers anyone — DIY enthusiasts, designers, interior architects, and small manufacturers — to build beautiful, robust furniture using minimal tools and locally sourced materials.\n\nAlgorithms automatically generate personalized construction plans and optimized material lists, making building accessible, sustainable, and waste-efficient.\n\n\n## Our Designs\n* [hyperwood-bench](https://github.com/jo/hyperwood-bench): Our simplistic yet elegant bench is the first-ever Hyperwood design, embodying the project's essence of simplicity, functionality, and aesthetic clarity.\n* [hyperwood-trough](https://github.com/jo/hyperwood-trough): This versatile trough demonstrates Hyperwood’s capability to create curved forms from straight slats—perfect as a plant container or decorative piece.\n\nDiscover more Hyperwood designs on crates.io by following the [#hyperwood-design](https://crates.io/keywords/hyperwood-design) keyword.\n\n## Hyperwood Exchange Format (HEF)\n\nInspired by the [Qubicle Exchange Format](https://getqubicle.com/qubicle/documentation/docs/file/qef/), the Hyperwood Exchange Format (HEF) is the dedicated file structure for the Hyperwood ecosystem. While the Qubicle format is voxel-based, HEF uses lines as its primitives, reflecting the structural essence of Hyperwood’s slat-based construction. HEF facilitates seamless data exchange between various software and applications, functioning as a standardized protocol for Hyperwood.\nData Structure\n\nHEF files are divided into 3 parts: the header, the part map and the slats data.\n\n### Header\n\nThe first part of the header always looks like this:\n```\nHyperwood Exchange Format\nVersion 1\nhttps://hyperwood.org\n```\n\nIt doesn’t hold any valuable information. Use it to test whether this file is really a HEF, or simply skip it.\n\nNow a line follows describing the name of the model:\n```\nBench\n```\n\nThe next line contains the parameters the model has been generated from, as JSON:\n```\n{\"width\":17,\"depth\":9,\"height\":7}\n```\n\nThen, the slat variant is included, as JSON:\n```\n{\"x\":0.06,\"y\":0.04,\"z\":0.06}\n```\n\nAnd the properties, calculated during model generation:\n```\n{\"width\":1.02,\"depth\":0.35999998,\"height\":0.42}\n```\n\n### Part Map\n\nHEF uses an indexed part map that contains all part names used in the following slats data. The first line tells you how many parts are in the parts map.\n```\n4\n```\n\nThe following lines store the individual part names (in this case 4). Names must not be longer than 32 characters.\n```\nShelf\nSeat\nKeel\nLeg\n```\n\n### Lath Data\n\nThe rest of the file stores all slats, one slat per line.\n```\n3 4 1 11 0 0 4 2\n0 0 7 17 0 0 0 1\n...\n14 7 0 0 0 7 7 3\n```\n\n- the first 3 values of each line are the slats’s position in X:Y:Z\n- the next 3 values is the slats vector, it's length in each dimension\n- the second last value is the layer number\n- the very last value is the part index of the partmap (starting with 0)\n\n### Complete Example\n```\nHyperwood Exchange Format\nVersion 1\nhyperwood.org\nBench\n{\"width\":17,\"depth\":9,\"height\":7}\n{\"x\":0.06,\"y\":0.04,\"z\":0.06}\n{\"width\":1.02,\"depth\":0.35999998,\"height\":0.42}\n4\nShelf\nSeat\nKeel\nLeg\n3 4 1 11 0 0 4 2\n0 0 7 17 0 0 0 1\n0 2 7 17 0 0 2 1\n0 4 7 17 0 0 4 1\n0 6 7 17 0 0 6 1\n0 8 7 17 0 0 8 1\n2 2 2 13 0 0 2 0\n2 4 2 13 0 0 4 0\n2 6 2 13 0 0 6 0\n3 1 0 0 0 7 1 3\n14 1 0 0 0 7 1 3\n3 3 1 0 0 6 3 3\n14 3 1 0 0 6 3 3\n3 5 1 0 0 6 5 3\n14 5 1 0 0 6 5 3\n3 7 0 0 0 7 7 3\n14 7 0 0 0 7 7 3\n```\n\n## API\nThe `hyperwood` crate provides methods for parsing and generating HEF files. It also helps with Bill of Material generation. See [the docs](https://docs.rs/hyperwood/0.1.0/hyperwood/) for details.\n\n## CLI\nThe `hyperwood` crate also comes with a command line tool which provides some basic tasks around HEF files:\n```\nHEF CLI\n\nUsage: hef [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  parameters    Print out a Parameters\n  variant       Print out a Lath Variant\n  properties    Print out a Properties\n  bom           Print out a BOM\n  requirements  Print out the requirements length of slat\n  help          Print this message or the help of the given subcommand(s)\n\nOptions:\n  -f, --filename \u003cFILENAME\u003e  HEF filename. If omitted, read STDIN\n  -h, --help                 Print help (see more with '--help')\n```\n\n© 2025 Johannes J. Schmidt\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo%2Fhyperwood","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjo%2Fhyperwood","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo%2Fhyperwood/lists"}