{"id":29434403,"url":"https://github.com/dnyarri/img2mesh","last_synced_at":"2026-04-01T18:29:38.858Z","repository":{"id":213362073,"uuid":"733875398","full_name":"Dnyarri/img2mesh","owner":"Dnyarri","description":"Converting  bitmap heightfield to 3D mesh in POV-Ray, OBJ, STL and DXF formats","archived":false,"fork":false,"pushed_at":"2026-04-01T05:23:07.000Z","size":669,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T08:06:29.752Z","etag":null,"topics":["3d","3d-graphics","3d-models","3d-printing","autodesk","dxf","obj","pov","pov-ray","povray","python","python3","stereolithography","stl","stl-model","wavefront","wavefront-obj"],"latest_commit_sha":null,"homepage":"https://dnyarri.github.io/img2mesh.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dnyarri.png","metadata":{"files":{"readme":"README.RU.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-20T10:28:51.000Z","updated_at":"2026-04-01T05:21:50.000Z","dependencies_parsed_at":"2024-04-18T12:47:24.430Z","dependency_job_id":"6173684c-d9b6-49fa-9b4b-be9854fab83a","html_url":"https://github.com/Dnyarri/img2mesh","commit_stats":null,"previous_names":["dnyarri/img2mesh"],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/Dnyarri/img2mesh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dnyarri%2Fimg2mesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dnyarri%2Fimg2mesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dnyarri%2Fimg2mesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dnyarri%2Fimg2mesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dnyarri","download_url":"https://codeload.github.com/Dnyarri/img2mesh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dnyarri%2Fimg2mesh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":["3d","3d-graphics","3d-models","3d-printing","autodesk","dxf","obj","pov","pov-ray","povray","python","python3","stereolithography","stl","stl-model","wavefront","wavefront-obj"],"created_at":"2025-07-13T02:16:09.066Z","updated_at":"2026-04-01T18:29:38.850Z","avatar_url":"https://github.com/Dnyarri.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n| [〖EN〗](README.md) | 【RU】 |\n| ---- | ---- |\n\n# Конвертер из растровых картинок в 3D-сетку треугольников  \n\nПрограмма на Python для трассировки карты высот в графических форматах [PNG](http://www.libpng.org/pub/png/) или [PGM/PPM](https://dnyarri.github.io/pypnm.html) в трёхмерную векторную сетку треугольников (triangle mesh) в форматах [POV-Ray](https://www.povray.org/) POV, Wavefront OBJ, Autodesk DXF, а также STL для 3D-принтеров. Координаты x, y пикселя соответствуют координатам x, y узлов сетки, яркость пикселя соответствует высоте (z) узла сетки. В случае исходных графических файлов с низким разрешением полученная при трассировке 3D-сетка обеспечивает лучшее визуальное качество рендеринга, нежели исходные графические файлы при их использовании в качестве heightfield напрямую.  \n\n[![Example of img2mesh output rendering](https://dnyarri.github.io/imgmesh/640/img2mesh.png \"Example of img2mesh output rendering\")](https://dnyarri.github.io/img2mesh.html)\n\n## Совместимость с форматами\n\n| Форматы импорта | Форматы экспорта 3D |\n| ------ | ------ |\n| 16 и 8 бит на канал PNG, PGM и PPM  | POV, OBJ, ASCII STL, ASCII DXF |\n\n## Содержимое\n\n- **img2mesh** - удобный GUI, объединяющий все функции из программ ниже.\n\n- **list2mesh** module, including:\n\n  - **list2pov**: конвертер изображений в сцену POV-Ray. Полученная сцена содержит 3D-сетку, объект box (CSG intersection), создающий боковые стенки и дно, свет и камеру. Текстуры заявлены в declare отдельно для удобства редактирования;\n\n  - **list2stl**: конвертер изображений в STL. Экспортированный файл содержит 3D-сетку и боковые и нижнюю поверхности в виде сетки, поскольку они необходимы 3D-принтеру;\n\n  - **list2obj**: конвертер изображений в Wavefront OBJ. Экспортированный файл содержит только 3D-сетку;\n\n  - **list2dxf**: конвертер изображений в Autodesk DXF. Экспортированный файл содержит только 3D-сетку;\n\n- Модули **pypng** и **pypnm**, обеспечивающие чтение PNG и PGM/PPM файлов, соответственно.\n\n[![Preview of img2mesh output files in one folder](https://dnyarri.github.io/imgmesh/printscreen.png \"Preview of img2mesh output files in one folder\")](https://dnyarri.github.io/img2mesh.html)\n\n## Необходимые исходные и Внешние зависимости\n\n1. [Python](https://www.python.org/) 3.11 или посвежее.\n2. [PyPNG](https://gitlab.com/drj11/pypng). Копия включена в дистрибутив img2mesh.\n3. [PyPNM](https://pypi.org/project/PyPNM/). Копия включена в дистрибутив img2mesh.\n4. Tkinter. Обыкновенно входит в состав типового дистрибутива CPython.\n\n\u003e [!NOTE]\n\u003e Начиная с img2mesh 3.21.2.16 PyPNM, включённый в дистрибутив, обновлён до [PyPNM \"Victory 2\" main](https://github.com/Dnyarri/PyPNM), предназначенный для работы под Python 3.11 и выше. Единственное практическое ограничение совместимости - данная версия не содержит трюков для отображения 16 bpc картинок под старым Tkinter, включённым в старый CPython. Если вам хочется вернуть назад совместимость со старым TKinter, вы можете скачать руками [PyPNM extended compatibility version](https://github.com/Dnyarri/PyPNM/tree/py34) и вставить его на место нового PyPNM тем же местом (то есть руками).\n\n## Развёртывание и боевое применение\n\nКомплект программ самодостаточен и должен работать сразу после распаковки при наличии на машине стандартной установки CPython. Программа оборудована минималистическим GUI, в результате всё, что вы должны сделать после запуска программы, это с помощью двойного клика в диалог или Ctrl+O запустить \"Open...\", выбрать и открыть файл PNG, или PPM, или PGM, затем с помощью правого клика или Alt+F вызвать меню \"File\" и выбрать файл для сохранения, подождать, пока программа отработает и закроется, затем открыть полученный файл в подходящей 3D-программе.\n\n\u003e [!NOTE]\n\u003e Начиная с img2mesh 3.21.21.21 геометрия сетки изменена с *вер. 3* на *4*, представляющую собой смешенье двух подходов - *вер. 3* обеспечивает лучшие результаты для большинства областей объекта, в то время как свежедобавленная лучше работает на контрастных диагоналях.\n\nВарианты геометрии переключаются с одного на другой в зависимости от локального контраста оригинала, контроль порога добавлен к GUI. Значение по умолчанию проставлено на основании результатов ряда экспериментов, однако для некоторых объектов может потребоваться ручная корректировка и повторный рендеринг для достижения наилучших результатов. *Но мы продолжаем наши опыты; главное для нас, конечно, здоровье людей* (ц) др. Жбах.\n\n### Для разработчиков\n\nМодуль экспорта, включающий функции 3D-экспорта, может быть использован другими разработчиками безвозмездно, то есть даром.\n\n## Литература\n\n1. [POV-Ray](https://www.povray.org/) и [спецификция POV SDL](https://www.povray.org/documentation/3.7.0/).\n\n2. [Wavefront Object Files (.obj)](https://paulbourke.net/dataformats/obj/obj_spec.pdf) в [Paul Bourke collection](https://paulbourke.net/dataformats/).\n\n3. [Cătălin IANCU et al., From CAD model to 3D print via “STL” file format](https://www.utgjiu.ro/rev_mec/mecanica/pdf/2010-01/13_Catalin%20Iancu.pdf).\n\n4. [Marshall Burns, Automated Fabrication, Section 6.5](https://www.fabbers.com/tech/STL_Format).\n\n5. [DXF Reference](https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf) by Autodesk, Inc.\n\n### Родственное\n\n[Dnyarri website](https://dnyarri.github.io) - остальной питонистый навар, отставить, товар от Жабы Огромной Умственной Силы.\n\n[img2mesh с иллюстрациями и объяснениями](https://dnyarri.github.io/img2mesh.html).\n\n[Исходники img2mesh на Github](https://github.com/Dnyarri/img2mesh)\n\n[Зеркало исходников img2mesh на Gitflic](https://gitflic.ru/project/dnyarri/img2mesh)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnyarri%2Fimg2mesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnyarri%2Fimg2mesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnyarri%2Fimg2mesh/lists"}