{"id":40432970,"url":"https://github.com/lihpc-computational-geometry/hexex2geogram","last_synced_at":"2026-01-20T16:09:16.545Z","repository":{"id":103218921,"uuid":"538430555","full_name":"LIHPC-Computational-Geometry/hexex2geogram","owner":"LIHPC-Computational-Geometry","description":".hexex to .geogram mesh file conversion","archived":false,"fork":false,"pushed_at":"2023-11-29T15:41:49.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T03:48:13.527Z","etag":null,"topics":["file-conversion","file-converter","geometry-processing","mesh","mesh-processing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LIHPC-Computational-Geometry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-19T09:39:50.000Z","updated_at":"2025-01-10T16:27:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"f22a7f2e-4c69-4e3c-bd25-d437e7eebf80","html_url":"https://github.com/LIHPC-Computational-Geometry/hexex2geogram","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LIHPC-Computational-Geometry/hexex2geogram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LIHPC-Computational-Geometry%2Fhexex2geogram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LIHPC-Computational-Geometry%2Fhexex2geogram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LIHPC-Computational-Geometry%2Fhexex2geogram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LIHPC-Computational-Geometry%2Fhexex2geogram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LIHPC-Computational-Geometry","download_url":"https://codeload.github.com/LIHPC-Computational-Geometry/hexex2geogram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LIHPC-Computational-Geometry%2Fhexex2geogram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28606462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T14:45:23.139Z","status":"ssl_error","status_checked_at":"2026-01-20T14:44:16.929Z","response_time":117,"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":["file-conversion","file-converter","geometry-processing","mesh","mesh-processing"],"created_at":"2026-01-20T16:09:16.475Z","updated_at":"2026-01-20T16:09:16.540Z","avatar_url":"https://github.com/LIHPC-Computational-Geometry.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hexex2geogram : .hexex to .geogram mesh file conversion\n\nA `.hexex` file stores a tetrahedral mesh with an $u,v,w$ parametrization. The syntax is explained in the additional material of [HexEx](https://www.graphics.rwth-aachen.de/publication/03260/)[^HexEx] and also [below](#hexex-format).\n\n`.geogram` is a file format used by the [Geogram library](https://github.com/BrunoLevy/geogram/wiki/Mesh), which supports embedded attributes.\n\nThis simple program converts a `.hexex` file to a `.geogram` one, using per-cell-corner attributes to store the parametrization.\n\n## Requirements\n\n- a C++ 17 compiler\n- [CMake](https://cmake.org/)\n- [UltiMaille](https://github.com/ultimaille/ultimaille) (included as submodule)\n- [Graphite](https://github.com/BrunoLevy/GraphiteThree) or Vorpaview, to visualize the output `.geogram` file\n- [OpenMP](https://www.openmp.org) (optionnal)\n\n## Build\n\n```bash\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n## Tutorial\n\nThe `sphere.hexex` file comes from the additional material of [HexEx](https://www.graphics.rwth-aachen.de/publication/03260/)[^HexEx].\n\n```bash\n./hexex2geogram ../data/sphere.hexex ../data/sphere.geogram\n```\n\nThen:\n- open `sphere.geogram` with [Graphite](https://github.com/BrunoLevy/GraphiteThree)\n- in the Properties panel, choose \"ATTRIBUTE\" for \"painting\"\n- choose \"cell_corners.u\", \"cell_corners.v\" or \"cell_corners.w\" for \"attribute\"\n- click on \"autorange\"\n- use a perceptually correct colormap\n\nThe output files of [MC3D](https://github.com/HendrikBrueckler/MC3D)[^MC3D] also use the `.hexex` format, with additional information at the end (the walls of the block decomposition). These walls could be saved in the output `.geogram` file with cell facets attributes, but as of today (October 2023), [Graphite/Vorpaview cannot display them](https://github.com/BrunoLevy/geogram/issues/19). Instead, tetrahedra are grouped by block, and a cell attribute \"cells.block_id\" is exported. The computation is quite slow.\n\n## `.hexex` format\n\nIt is an ASCII-based format.\n\nThe fist line is $n$, the number of vertices. It is followed by $n$ lines defining the $n$ vertices. A vertex definition has 3 floating-point numbers for the $x$, $y$ and $z$ coordinates, separated by spaces.\n\nThen there is $m$, the number of cells, followed by $m$ lines for the tetrahedra definitions. A tetrahedron defintion has 4 integers $i0,i1,i2,i3$ (vertex index for each corner) then $4 \\times 3$ floating-point numbers ( $u,v,w$ for corner 0, then for corner 1, corner 2 and corner 3), separated by spaces.\n\nThe vertices indices $i0,i1,i2,i3$ must be ordered such that\n$$\\det(i1-i0,i2-i0,i3-i0)\u003e0$$\nThis condition is not checked in hexex2geogram.\n\nIn case of an output of [MC3D](https://github.com/HendrikBrueckler/MC3D)[^MC3D], the file ends with the number of wall triangles $w$, followed by $w$ lines for wall triangle definitions. A wall triangle definition has 3 integers and a floating-point number (separated by spaces): the 3 vertex indices and the distance from the brush fire's origin.\n\n[^HexEx]:\n    Max Lyon, David Bommes, Leif Kobbelt, *HexEx: Robust Hexahedral Mesh Extraction*, SIGGRAPH 2016, [url](https://www.graphics.rwth-aachen.de/publication/03260/)\n[^MC3D]:\n    Hendrik Brückler, Ojaswi Gupta, Manish Mandad, Marcel Campen, *The 3D Motorcycle Complex for Structured Volume Decomposition*, Eurographics 2022, [url](http://graphics.cs.uos.de/papers/3D_Motorcycle_Graph_EG2022.pdf)\n\n## License\n\n[AGPL-3.0](LICENSE)\n\n## Cite this repository\n\nSee [CITATION.cff](CITATION.cff) or the dedicated button on GitHub\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihpc-computational-geometry%2Fhexex2geogram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flihpc-computational-geometry%2Fhexex2geogram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihpc-computational-geometry%2Fhexex2geogram/lists"}