{"id":13498465,"url":"https://github.com/dfki-ric/phobos","last_synced_at":"2026-01-26T09:43:50.648Z","repository":{"id":19694942,"uuid":"22949566","full_name":"dfki-ric/phobos","owner":"dfki-ric","description":"An add-on for Blender allowing to create URDF, SDF and SMURF robot models in a WYSIWYG environment.","archived":false,"fork":false,"pushed_at":"2025-03-25T09:53:45.000Z","size":24427,"stargazers_count":757,"open_issues_count":17,"forks_count":117,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-03-25T10:26:09.158Z","etag":null,"topics":["blender","gazebo","mars","python","robot","sdformat","smurf","urdf"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfki-ric.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json"}},"created_at":"2014-08-14T10:08:49.000Z","updated_at":"2025-03-24T17:30:24.000Z","dependencies_parsed_at":"2023-09-26T17:55:45.630Z","dependency_job_id":"6e83b55c-4171-4961-9cee-d6737a066fa6","html_url":"https://github.com/dfki-ric/phobos","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfki-ric%2Fphobos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfki-ric%2Fphobos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfki-ric%2Fphobos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfki-ric%2Fphobos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfki-ric","download_url":"https://codeload.github.com/dfki-ric/phobos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246125380,"owners_count":20727417,"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":["blender","gazebo","mars","python","robot","sdformat","smurf","urdf"],"created_at":"2024-07-31T21:00:30.652Z","updated_at":"2026-01-26T09:43:47.684Z","avatar_url":"https://github.com/dfki-ric.png","language":"Python","readme":"[![latest-release](https://img.shields.io/github/tag/dfki-ric/phobos.svg?label=version\u0026style=flat)](https://github.com/dfki-ric/phobos/releases)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.01326/status.svg)](https://doi.org/10.21105/joss.01326)\n[![license](https://img.shields.io/github/license/dfki-ric/phobos.svg?style=flat)](https://github.com/dfki-ric/phobos/blob/master/COPYING)\n[![made-with-sphinx-doc](https://img.shields.io/badge/Made%20with-Sphinx-1f425f.svg)](https://www.sphinx-doc.org/)\n[![API-Docs](https://github.com/dfki-ric/phobos/actions/workflows/gh-pages.yml/badge.svg)](http://dfki-ric.github.io/phobos)\n\n![Phobos](https://github.com/dfki-ric/phobos/wiki/img/phobos_logo_small.png)\n\nPhobos is both a CLI tool and add-on for the open-source 3D modeling software\n[Blender v3.3LTS](https://www.blender.org/download/lts/3-3/) to support your robot model creation and editing.\n\nThe Blender add-on enables the creation of WYSIWYG robot\nmodels for use in robot frameworks like [ROS](http://wiki.ros.org/) and\n[ROCK](https://github.com/rock-core) or in real-time simulations such as\n[MARS](https://github.com/rock-simulation/mars) or\n[Gazebo](http://gazebosim.org/). Phobos exports formats such as **URDF**,\n**SDF** or **SMURF** and common mesh formats (**Stereolithography** (.stl),\n**Wavefront** (.obj) or **Collada** (.dae)).\n\nPhobos was initiated and is currently developed at the [Robotics Innovation\nCenter](http://robotik.dfki-bremen.de/en/startpage.html) of the [German\nResearch Center for Artificial Intelligence (DFKI)](http://www.dfki.de) in\nBremen, together with the [Robotics\nGroup](http://www.informatik.uni-bremen.de/robotik/index_en.php) of the\n[University of Bremen](http://www.uni-bremen.de/en.html).\n\nPlease contact [Henning Wiedemann](https://robotik.dfki-bremen.de/de/ueber-uns/mitarbeiter/hewi04.html)\nfor any inquiries, or any questions and feedback not suited for the issues\npage.\n\n## Version 2.0.0\nWith version 2.0.0 we did a refactoring of Phobos and its now possible to use phobos as a normal python package and command line tool (see below).\n\nWhen running the new Phobos on a model created with an older version of Phobos, make sure to have a backup.\nFor most cases you should be able to update your model by simply exporting it to smurf and then importing it again from that smurf file.\nDue to the changes between Blender 2 to 3 it might be necessary to check whether your materials already use the Specular BSDF or Principled BSDF shaders, if not you'd have to update this manually.\n\nIf you encounter any problems with this new version please do not hesitate to open an issue [here](https://github.com/dfki-ric/phobos/issues).\n\n## Questions or Ideas you want to discuss?\nPlease have a look at our [GitHub discussions](https://github.com/dfki-ric/phobos/discussions).\n\n## Found a bug or want to request a feature?\nPlease let us know by opening an issue [here](https://github.com/dfki-ric/phobos/issues).\n\n## Documentation\n- User documentation: [Phobos Wiki](https://github.com/dfki-ric/phobos/wiki)\n- Source documentation: [Phobos' Github Page](http://dfki-ric.github.io/phobos).\n\n## Citing\n\nPhobos has been published in the [Journal of Open Source Software](https://doi.org/10.21105/joss.01326).\nWe ask users to cite the use of Phobos, as it allows us to keep the project alive.\n\nWhen citing, please provide this information:\n\n  - Phobos version you were using (see the [wiki](https://github.com/dfki-ric/phobos/wiki/Installation#versions-and-branching) for information about versions)\n  - If you were using additional Phobos plugins or configurations.\n  - The general [Phobos paper](https://doi.org/10.21105/joss.01326).\n\nIf you are on the hunt for a BiBTeX entry, check out the [FAQ section](https://github.com/dfki-ric/phobos/wiki/FAQ#how-do-i-cite-phobos).\n\n## Installation\n\n### Blender\n\u003eUPDATING: If you already have phobos installed and want to update.\n\u003e You have to remove the old version of Phobos first and close Blender.\n\u003e Then proceed with the installation steps explained below.\n\n\u003eNOTE (WINDOWS): If you are using blender under Windows, make sure you have the latest version of [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170) installed.  Otherwise Blender's python won't work properly.\n\nTo install Phobos in blender download the phobos.zip of the release or zip the phobos subdirectory (e.g. `zip -r phobos.zip phobos`)\nPhobos has several python dependencies, those have to be installed in blender before you can use phobos.\nThere are two ways of installing Phobos:\n\n- Recommended:\n  1. Directly install the phobos.zip in blender: `Blender-\u003eEdit-\u003ePreferences-\u003eAddons-\u003eInstall` and activate it.\n  2. Restart Blender.\n  3. Activate Phobos Add-on again.\n- (Offers inspection of the requirements before installing them) Before installing the phobos.zip you can run the script install_requirements.py with blender's python.\n  1. ```bash\n     ${BLENDER_EXECUTABLE} -b --python install_requirements.py\n     ```\n  2. Install the phobos.zip in blender: `Blender-\u003eEdit-\u003ePreferences-\u003eAddons-\u003eInstall` and activate it.\n\nAfter installation the phobos main menu can be found on the right hand side of the 3D Viewport.\nIf not already visible, one can find a very small arrow to open the Blender toolbar (purple circle showing it in the image).\n\n![Small arrow to open the phobos toolbar widget.](https://github.com/dfki-ric/phobos/wiki/img/blender_phobos_menu_open.png)\n\nPhobos is currently tested and running with Blender v3.3 LTS.\n\n### CLI\nInstall the requirements by executing `install_requirements.py` with the python you want to install phobos to:\n```bash\ncd phobos\npython3 install_requirements.py\n```\n\nThen just install it using pip:\n```bash\ncd phobos\npip install .\n```\nor with autoproj:\n1) Add the package to your buildconf/package_set\n2) Install via `amake`\n\n## Overview\n\n### Blender\n\n![Model of the SpaceClimber robot in Blender, next to the Phobos toolbar\ndisplayed on the\nleft.](https://github.com/dfki-ric/phobos/wiki/img/phobos_spaceclimber.png)\n\n*Model of the\n[SpaceClimber](http://robotik.dfki-bremen.de/en/research/projects/spaceclimber-1.html)\nrobot in Blender, next to the Phobos toolbar displayed on the left.*\n\nPhobos makes use of Blender's hierarchical object graph and its bone objects.\nThese objects, normally used for animating 3D characters, allow to store 3D\ncoordinate systems and apply constraints to their movements, for instance to\nrestrict the movement of an object to a certain range on a specific axis. This\nallows to replicate the links and joints defined in a **URDF** model and together\nwith the hierarchical tree of parent and child objects, the complete, branching\nkinematic chain of a robot can be represented. By attaching meshes or\nprimitives to the bones, Phobos allows to add visual and collision objects to\na model. Additional objects allow storing further information, e.g. centers of\nmass of each part of a robot, thus refining the physical representation. Sensor\nobjects can be added to correctly place and orient devices such as laser\nscanners, cameras or contact sensors. Making use of Blender's custom object\nproperties, any necessary information can be added to the model, from inertia\ntensors to opening angles of cameras.\n\n![Decomposition of the different elements from which Phobos models are composed\nin Blender.](https://github.com/dfki-ric/phobos/wiki/img/phobos_elements.png)\n\n*Decomposition of the different elements from which Phobos models are composed\nin Blender. These elements can be arranged in Blender on different layers, thus\navoiding confusion or obstruction of view when editing very complex models.*\n\n### CLI\n\nYou can either use CLI-phobos as a normal python package or use the scripts provided with it.\n\nFor the latter do `phobos --help` to get a list of the currently available scripts.\nIt will also tell you which dependencies are missing for some scripts.\n\n## Features\n\n- WYSIWYG editor for robot models using Blender\n- CLI tools for fast and easy model handling and inspection\n- CI tool to run phobos headless in your CI-pipeline for atomated model processing and maintenance\n- Import and export of **URDF**, **SDF** **SMURF** and other\n  [formats](https://github.com/dfki-ric/phobos/wiki/Formats)\n- Easy definition of robot kinematics (links and joints)\n- Visualisation of different model components, even joint constraints\n- Numerous tools for fast editing:\n  - Batch editing of object properties\n  - Auto-generation of collision objects\n  - Auto-generation of inertia tensors from mass and shape\n  - Calculation of merged inertia for complex links\n  - Verbose logging\n- Saving and loading of model poses\n- Annotation of objects from motors/sensors to joints/links\n- Save/load different export configurations for the same model\n- Export with defined floating point precision\n- Model integrity checks\n- Tools for maintaining your own model database\n- Library containing Python examples for automatic model adaption\n- All the cool features Blender already provides (rendering, animation, etc.)\n\n## License\n\nPhobos is distributed under the [3-Clause BSD License](https://opensource.org/licenses/BSD-3-Clause).\n","funding_links":[],"categories":["[Libraries](#awesome-robotics-libraries)","Electronics and Mechanics","Hardware","🔮Add-ons [^](#table)"],"sub_categories":["[Robot Modeling](#awesome-robotics-libraries)","Version Control","🌊Simulation/Physics [^](#table)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfki-ric%2Fphobos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfki-ric%2Fphobos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfki-ric%2Fphobos/lists"}