{"id":13821834,"url":"https://github.com/stefanmuller/ldraw2houdini","last_synced_at":"2025-05-16T15:31:04.002Z","repository":{"id":174530910,"uuid":"629724144","full_name":"stefanmuller/ldraw2houdini","owner":"stefanmuller","description":"Import LDraw files directly into Houdini","archived":false,"fork":false,"pushed_at":"2024-04-27T19:49:17.000Z","size":7934,"stargazers_count":39,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-05T08:09:56.044Z","etag":null,"topics":["cgi","houdini","ldraw","vfx"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanmuller.png","metadata":{"files":{"readme":"README.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}},"created_at":"2023-04-18T22:42:35.000Z","updated_at":"2024-05-02T18:08:31.000Z","dependencies_parsed_at":"2023-11-15T05:34:15.628Z","dependency_job_id":"eee51c6b-b1dd-472e-ab0a-964299c3b631","html_url":"https://github.com/stefanmuller/ldraw2houdini","commit_stats":null,"previous_names":["stefanmuller/ldraw2houdini"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanmuller%2Fldraw2houdini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanmuller%2Fldraw2houdini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanmuller%2Fldraw2houdini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanmuller%2Fldraw2houdini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanmuller","download_url":"https://codeload.github.com/stefanmuller/ldraw2houdini/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225436306,"owners_count":17474118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cgi","houdini","ldraw","vfx"],"created_at":"2024-08-04T08:01:30.110Z","updated_at":"2025-05-16T15:31:03.966Z","avatar_url":"https://github.com/stefanmuller.png","language":"Python","funding_links":["https://www.buymeacoffee.com/stefanmuller"],"categories":["Python"],"sub_categories":[],"readme":"# LDraw2Houdini\n\n### Import LDraw files directly into Houdini\n\nSource individual parts or import entire models with one-button shelf tools!\n\n[![render of example scene](/resources/help/brickini_example_scene.jpg)](https://youtu.be/JDEZ5LpPKfM)\n\n[Watch YouTube Showcase Video](https://youtu.be/JDEZ5LpPKfM)\n\n## Features\n- **Import individual bricks \u0026 entire models**\n- **Logo on studs**\n- **LDR, L3B \u0026 MPD file support:** mpd files contain multiple sub models, referenced by a main model\n- **Instancing support:** duplicate bricks are automatically packed and the color is read from the point data\n- **Imperfections:** if importing a model, the bricks are not perfectly stacked/aligned to each other for a more realistic look. Bricks can also randomly yellow due to age.\n- **Injection points:** options to procedurally add injection marks either on stud or on walls (vintage bricks ~70s and older)\n- **Gaps between bricks:** bricks can be slightly squashed to get tiny gaps between them\n- **Slope support** slopes are automatically detected so they can get a grainy texture\n- **Bevel and subdivison support:** geometry is automagically cleaned up as much as possible and LDraw lines are used to determine edges that need to be beveled to allow proper subdivision\n- **Auto caching** every imported part will automatically be cached in LDraw library; Importing times will decrease the more LDraw2Houdini is used.\n- **Auto generate textures for prints/stickers** for modern cg workflows\n- **Auto uvs**\n- **Material properties:** simple config file to define softness, graininess and roughness for individual parts\n- **Solaris + Karma example scene** contains MaterialX shader showcasing how to create high quality renderings\n- **ACES colorspace:** LDraw colors are converted to acescg\n\n## Requirements\n- Houdini 20.5 (Py 3.11) - Other versions *might* work, see [Optional Step 8.](#optional_id)\n- SideFX Labs for auto uv feature\n- OCIO ACES colorspace configuration for Houdini\n\n## Installation\n\n1. Download the latest [release](https://github.com/stefanmuller/ldraw2houdini/releases)\n2. Unpack to a directory called **ldraw2houdini**\n\n        # Windows C:\\Users\\\u003cusername\u003e\\Documents\\git\\ldraw2houdini \n        # Linux ~/git/ldraw2houdini\n\n3. Download [LDraw parts library](https://library.ldraw.org/updates?latest) - (complete.zip)\n4. Unpack to a directory called **ldraw**\n\n        # Windows C:\\Users\\\u003cusername\u003e\\Documents\\ldraw\n        # Linux ~/ldraw\n\n5. Download **ldraw2houdini.json** from [release page](https://github.com/stefanmuller/ldraw2houdini/releases). Place it in the Houdini packages folder.\n6. If packages folder doesn't exist create it yourself.\n\n        # Windows C:\\Users\\\u003cusername\u003e\\Documents\\houdiniXX.X\\packages\n        # Linux ~/houdiniXX.X/packages\n\n7. Launch Houdini - Happy ldrawing!\n\n\u003ca id=\"optional_id\"\u003e\u003c/a\u003e\n### Optional Steps\n8. Make sure you have **Houdini 20.5 Python 3.11** installed. If you are running older or newer versions of Houdini and/or Python you have to rename the **python3.11libs** folder accordingly. I.e. if your Houdini Python version is 3.9 rename it to **python3.9libs** \n\n9. If you placed anything in different paths, adjust **ldraw2houdini.json** accordingly.\n    - LDRAW2HOUDINI needs to point to the path of this plugin\n    - LDRAW_LIB needs to point to the LDraw library\n    - Under Windows $HOME points to C:\\Users\\\\\\\u003cusername\u003e\\Documents\n    - Under Linux $HOME is ~/\n\n                {\n                \"env\": [\n                        { \"LDRAW2HOUDINI\": \"$HOME/git/ldraw2houdini\" },\n                        { \"LDRAW_LIB\": \"$HOME/ldraw\" },\n                        { \"LDRAW_CACHE\": 0 }\n                ],\n                \"path\": [\n                        \"${LDRAW2HOUDINI}\"\n                ]\n                }\n\n10. Set LDRAW_CACHE to 0 or 1 to enable/disable caching. This will write bgeo files to **$LDRAW_LIB/bgeo**. Remember to delete this folder if you update your LDraw parts library.\n11. If you install a new release and want to upgrade your hdas in an existing scene run the **Upgrade Brickini HDAs Shelf Tool**\n12. See [release notes](https://github.com/stefanmuller/ldraw2houdini/releases) for more details and explanations of specific features\n\n\n## Quickstart Guide\n\n### Import a single part\n\n1. Create a **Brickini LDraw Part** node inside a Geometry node in SOP context\n2. Type a cool part number into the **Part** parameter: 2546p01\n3. Change **Material** parameter to red\n4. Look at that awesome classic parrot\n\n![a parrot in the houdini viewport](/resources/help/brickini_ldraw_part.jpg)\n\n### Import an entire model\n\n1. Add the Brickini Shelf to your toolbar \n2. Click **LDraw Model** or **LDraw Model Dynamic**\n3. Choose an LDraw model file\n4. Prints won't show up in the viewport, if bricks are packed (default) but are supported when rendering with Karma/Solaris\n5. Example scene with Karma material can be found here:\n\n        ldraw2houdini/resources/example_files/example_scene.hiplc\n\n![boutique hotel](/resources/help/brickini_ldraw_model.jpg)\n\n## Contributions\n- LDraw Model HDA (Dynamic mode): Kai Stavginski\n- Auto caching concept/idea: Kai Stavginski\n\n## Resources\n\n- [LDraw Official Model Repository](https://library.ldraw.org/omr)  \n- Official sets made in LDraw\n[Eurobricks Thread](https://www.eurobricks.com/forum/index.php?/forums/topic/48285-key-topic-official-lego-sets-made-in-ldraw/)\n\n## If you like this and want to support me\n\nYou can buy me a coffee :) [Buy Me a Coffee](https://www.buymeacoffee.com/stefanmuller)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanmuller%2Fldraw2houdini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanmuller%2Fldraw2houdini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanmuller%2Fldraw2houdini/lists"}