{"id":15155331,"url":"https://github.com/kaosat-dev/blenvy","last_synced_at":"2025-05-14T12:10:27.504Z","repository":{"id":184741453,"uuid":"670788928","full_name":"kaosat-dev/Blenvy","owner":"kaosat-dev","description":"Bevy Code \u0026 Blender addon for a simple workflow to add \u0026 edit Bevy components in Blender","archived":false,"fork":false,"pushed_at":"2025-02-16T22:37:21.000Z","size":52969,"stargazers_count":727,"open_issues_count":47,"forks_count":79,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-13T09:00:44.735Z","etag":null,"topics":["bevy-engine","blender","gamedev"],"latest_commit_sha":null,"homepage":"","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/kaosat-dev.png","metadata":{"files":{"readme":"README-workflow-classic.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE.md","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},"funding":{"ko_fi":"crobocado"}},"created_at":"2023-07-25T20:57:57.000Z","updated_at":"2025-04-13T03:19:55.000Z","dependencies_parsed_at":"2023-07-30T01:53:30.434Z","dependency_job_id":"7de9c896-bd69-4f9f-b374-dee7ac6b7b50","html_url":"https://github.com/kaosat-dev/Blenvy","commit_stats":{"total_commits":93,"total_committers":9,"mean_commits":"10.333333333333334","dds":"0.17204301075268813","last_synced_commit":"d5f14bc03790678f0d5d8bc3bd35a44609c5ac58"},"previous_names":["kaosat-dev/blender_bevy_components_worklflow","kaosat-dev/blender_bevy_components_workflow","kaosat-dev/blenvy"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FBlenvy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FBlenvy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FBlenvy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FBlenvy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaosat-dev","download_url":"https://codeload.github.com/kaosat-dev/Blenvy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688575,"owners_count":21145765,"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":["bevy-engine","blender","gamedev"],"created_at":"2024-09-26T18:04:35.337Z","updated_at":"2025-04-13T09:02:01.135Z","avatar_url":"https://github.com/kaosat-dev.png","language":"Python","funding_links":["https://ko-fi.com/crobocado"],"categories":[],"sub_categories":[],"readme":"# Workflow: classic\n\nThe workflow goes as follows (once you got your Bevy code setup)\n\n- create \u0026 register all your components you want to be able to set from the Blender side (this is basic Bevy, no specific work needed)\n\n![component registration](./docs/component_registration.png)\n\n## Component creation\n- Create an object / collection (for reuse) in Blender\n- Go to object properties =\u003e add a property, and add your component data\n    - unit structs, enums, and more complex strucs / components are all supported, (if the fields are basic data types at least,\n    have not tried more complex ones yet, but should also work)\n        - for structs with no params (unit structs): use a **STRING** property \u0026 an empty value \n        - for structs with params: use a RON representation of your fields (see below) \n        - for tupple strucs you can use any of the built in Blender custom property types: Strings, Booleans, floats, Vectors, etc\n\n        ![unit struct components in Blender](./docs/components_blender.png)\n\n        In rust:\n\n        ![unit struct components in Bevy](./docs/demo_simple_components.png)\n\n        (the Rust struct for these components for reference is [here](./examples/basic/game.rs#34) )\n\n\n        ![complex components in Blender](./docs/components_blender_parameters.png)\n\n        In rust:\n\n        ![complex components in Blender](./docs/camera_tracking_component.png)\n\n        (the Rust struct for this component for reference is [here](./examples/basic/core/camera/camera_tracking.rs#21) )\n\n        There is an other examples of using various Component types: Enums, Tupple structs,  strucs with fields etc [here](./examples/basic/test_components.rs),\n        even colors, Vecs (arrays), Vec2, Vec3 etc are all supported\n\n        ![complex components in Blender](./docs/components_blender_parameters2.png)\n\n- for collections \u0026 their instances: \n    * I usually create a library scene with nested collections\n        * the leaf collections are the assets you use in your level\n        * add an empty called xxxx_components\n        * add the components as explained in the previous part\n        \n        ![blender collection asset](./docs/blender_collections.png)\n\n    * In the Level/world itself, just create an instance of the collection (standard Blender, ie Shift+A -\u003e collection instance -\u003e pick the collection)\n\n## Exporting to gltf \n\n- export your level as a glb/gltf file :\n    - using Blender's default gltf exporter\n        !!**IMPORTANT** you need to check the following:\n        - custom properties\n        - cameras \u0026 lights if you want a complete level (as in this example)\n        ![gltf_export](./docs/gltf_export.png)\n    - or much better, using [gltf_auto_export](./tools/gltf_auto_export/)\n\n## Now use your gltf files in Bevy\n\n- load it in Bevy (see the various examples for this)\n- you should see the components attached to your entities in Bevy\n\n![components in bevy](./docs/components_bevy.png)\n![components in bevy](./docs/components_bevy2.png)\n![components in bevy](./docs/components_bevy3.png)\n\n\n\u003e note: you get a warning if there are any unregistered components in your gltf file (they get ignored)\nyou will get a warning **per entity**\n\n![missing components warnings](./docs/component_warnings.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaosat-dev%2Fblenvy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaosat-dev%2Fblenvy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaosat-dev%2Fblenvy/lists"}