{"id":20563236,"url":"https://github.com/gazebosim/sdformat","last_synced_at":"2025-04-08T16:08:48.944Z","repository":{"id":37014637,"uuid":"254823084","full_name":"gazebosim/sdformat","owner":"gazebosim","description":"Simulation Description Format (SDFormat) parser and description files.","archived":false,"fork":false,"pushed_at":"2025-03-19T17:19:46.000Z","size":19296,"stargazers_count":181,"open_issues_count":247,"forks_count":107,"subscribers_count":13,"default_branch":"sdf15","last_synced_at":"2025-04-01T14:15:18.667Z","etag":null,"topics":["cpp","gazebo","gazebosim","hacktoberfest","robot-description","robotics","robotics-simulation","sdformat","simulation","xml"],"latest_commit_sha":null,"homepage":"http://sdformat.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gazebosim.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-11T08:19:07.000Z","updated_at":"2025-03-31T08:21:14.000Z","dependencies_parsed_at":"2023-10-03T07:51:16.636Z","dependency_job_id":"eb1aa800-c46f-47e4-b087-1624ee2b3bb5","html_url":"https://github.com/gazebosim/sdformat","commit_stats":null,"previous_names":[],"tags_count":195,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gazebosim%2Fsdformat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gazebosim%2Fsdformat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gazebosim%2Fsdformat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gazebosim%2Fsdformat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gazebosim","download_url":"https://codeload.github.com/gazebosim/sdformat/tar.gz/refs/heads/sdf15","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247878022,"owners_count":21011158,"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":["cpp","gazebo","gazebosim","hacktoberfest","robot-description","robotics","robotics-simulation","sdformat","simulation","xml"],"created_at":"2024-11-16T04:17:10.388Z","updated_at":"2025-04-08T16:08:48.914Z","avatar_url":"https://github.com/gazebosim.png","language":"C++","readme":"# sdformat\n\n[![GitHub open issues](https://img.shields.io/github/issues-raw/gazebosim/sdformat.svg)](https://github.com/gazebosim/sdformat/issues)\n[![GitHub open pull requests](https://img.shields.io/github/issues-pr-raw/gazebosim/sdformat.svg)](https://github.com/gazebosim/sdformat/pulls)\n[![Discourse topics](https://img.shields.io/discourse/https/community.gazebosim.org/topics.svg)](https://community.gazebosim.org)\n[![Hex.pm](https://img.shields.io/hexpm/l/plug.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\n\u003c!--\nNote: The branch name in the codecov URL \u0026 library version should be updated when forward porting\n--\u003e\nBuild | Status\n-- | --\nTest coverage | [![codecov](https://codecov.io/gh/gazebosim/sdformat/tree/sdf15/graph/badge.svg)](https://codecov.io/gh/gazebosim/sdformat/tree/sdf15)\nUbuntu Jammy  | [![Build Status](https://build.osrfoundation.org/buildStatus/icon?job=sdformat-ci-sdf15-noble-amd64)](https://build.osrfoundation.org/job/sdformat-ci-sdf15-noble-amd64)\nHomebrew      | [![Build Status](https://build.osrfoundation.org/buildStatus/icon?job=sdformat-ci-sdf15-homebrew-amd64)](https://build.osrfoundation.org/job/sdformat-ci-sdf15-homebrew-amd64)\nWindows       | [![Build Status](https://build.osrfoundation.org/buildStatus/icon?job=sdformat-sdf15-clowin)](https://build.osrfoundation.org/job/sdformat-sdf15-clowin)\n\n\nSDFormat is an XML file format that describes environments, objects, and robots\nin a manner suitable for robotic applications. SDFormat is capable of representing\nand describing different physic engines, lighting properties, terrain, static\nor dynamic objects, and articulated robots with various sensors, and actuators.\nThe format of SDFormat is also described by XML, which facilitates updates and\nallows conversion from previous versions.\n\n## Documentation\n\nSee the [SDFormat Website](http://sdformat.org/) for a more comprehensive\ndescription of the specification, proposals for modifications, developer\ninformation, etc.\nThis website is published using some information from the\n[`sdf_tutorials`](https://github.com/gazebosim/sdf_tutorials) repository.\n\n\u003c!--\nTODO(eric.cousineau): Move installation instructions to sdf_tutorials, and link\nthere?\nTODO(eric.cousineau): Move terminology section to sdf_tutorials?\n--\u003e\n\n## Terminology\n\n* **SDFormat** - The specification.\n    * **SDF** - Synonym for SDFormat, though SDFormat should be preferred, as\n      \"SDF\" is an acronym with other meanings.\n* `libsdformat` - The C++ parsing code contained within this repository,\n  which can be used to read SDFormat files and return a C++ interface.\n\n[http://sdformat.org/](http://sdformat.org/)\n\n# Installation\n\nWe recommend following the Binary Installation instructions to get up and running as quickly and painlessly as possible.\n\nThe Source Installation instructions should be used if you need the very latest software improvements, you need to modify the code, or you plan to make a contribution.\n\n## Binary Installation\n\n### Ubuntu\n\nOn Ubuntu systems, `apt-get` can be used to install `sdformat`:\n```sh\nsudo sh -c 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" \u003e /etc/apt/sources.list.d/gazebo-stable.list'\nwget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -\nsudo apt-get update\n\nsudo apt install libsdformat\u003c#\u003e-dev libsdformat\u003c#\u003e\n```\n\nBe sure to replace `\u003c#\u003e` with a number value, such as 14 or 15, depending on\nwhich version you need, or leave it empty for version 1.\n\n### macOS\n\nOn macOS, after installing the [Homebrew package manager](https://brew.sh),\nadd OSRF packages:\n  ```sh\n  brew tap osrf/simulation\n  ```\n\nInstall sdformat:\n  ```sh\n  brew install sdformat\u003c#\u003e\n  ```\n\nBe sure to replace `\u003c#\u003e` with a number value, such as 14 or 15, depending on\nwhich version you need.\n\n### Windows\n\nInstall [Conda package management system](https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html).\nMiniconda suffices.\n\nCreate if necessary, and activate a Conda environment:\n```\nconda create -n gz-ws\nconda activate gz-ws\n```\n\nInstall `sdformat`:\n```\nconda install libsdformat --channel conda-forge\n```\n\nYou can view all the versions with\n```\nconda search libsdformat --channel conda-forge\n```\n\nand install a specific minor version with\n```\nconda install libsdformat=12.5.0 --channel conda-forge\n```\n\n## Source Installation\n\n\n**Note:** the `main` branch is under development for `libsdformat15` and is\ncurrently unstable. A release branch (`sdf12`, `sdf11`, `sdf10`, `sdf9`, etc.)\nis recommended for most users.\n\n## UNIX\n\n### Prerequisites\n\nClone the repository\n```sh\ngit clone https://github.com/gazebosim/sdformat -b sdf\u003c#\u003e\n```\nBe sure to replace `\u003c#\u003e` with a number value, such as 14 or 15, depending on\nwhich version you need.\n\n### Install dependencies\n\n#### Ubuntu\n\n```sh\ncd sdformat\nsudo apt -y install \\\n  $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | tr '\\n' ' '))\n```\n\n#### macOS\n\n```sh\nbrew install --only-dependencies sdformat\u003c#\u003e\n```\n\nBe sure to replace `\u003c#\u003e` with a number value, such as 14 or 15, depending on\nwhich version you need.\n\n### Build from Source\n\nStandard installation can be performed in UNIX systems using the following\nsteps:\n\n```sh\ncd sdformat\nmkdir build\ncd build\ncmake ..  # Consider specifying -DCMAKE_INSTALL_PREFIX=...\nmake install\n```\n\nsdformat supported cmake parameters at configuring time:\n\n| Name                  | Type | Default  | Description                          |\n|-----------------------|------|----------|--------------------------------------|\n| `SKIP_PYBIND11`       | BOOL | False    | Skip generating Python bindings via pybind11 |\n| `USE_INTERNAL_URDF`   | BOOL | False    | Use an internal copy of urdfdom 1.0.0 instead of looking for one installed in the system |\n| `USE_UPSTREAM_CFLAGS` | BOOL | True     | Use the sdformat team compilation flags instead of the common set defined by cmake.      |\n\n### Build python bindings separately from main library\n\nIf you want to build Python bindings separately from the main libsdformat library\n(for example if you want to build Python bindings for multiple versions of Python),\nyou can invoke cmake on the `python` folder instead of the root folder.\nSpecify the path to the python executable with which you wish to build bindings\nin the `Python3_EXECUTABLE` cmake variable.\nSpecify the install path for the bindings in the `CMAKE_INSTALL_PREFIX`\nvariable, and be sure to set your `PYTHONPATH` accordingly after install.\n\n```bash\ncd sdformat\nmkdir build_python3\ncd build_python3\ncmake ../python \\\n    -DPython3_EXECUTABLE=/usr/local/bin/python3.12 \\\n    -DCMAKE_INSTALL_PREFIX=\u003cprefix\u003e\n```\n\nSee the homebrew [sdformat15 formula](https://github.com/osrf/homebrew-simulation/blob/027d06f5be49da1e40d01180aedae7f76dc7ff47/Formula/sdformat15.rb#L12-L56)\nfor an example of building bindings for multiple versions of Python.\n\n## Uninstallation\n\nTo uninstall the software installed with the previous steps:\n\n```sh\ncd build\nmake uninstall\n```\n\n## Windows\n\n### Prerequisites\n\nInstall [Conda package management system](https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html).\nMiniconda suffices.\n\nCreate if necessary, and activate a Conda environment:\n```\nconda create -n gz-ws\nconda activate gz-ws\n```\n\nInstall prerequisites:\n```\nconda install cmake git vcstool colcon-common-extensions ^\ntinyxml2 urdfdom pybind11 -channel conda-forge\n```\n\n### Getting the sources and building from Source\n\nBe sure to replace `\u003c#\u003e` with a number value, such as 14 or 15, depending on\nwhich version you need.\n\n1. Getting the sources\n\n```\nmkdir ws\\src\ncd ws\nvcs import src --input https://raw.githubusercontent.com/gazebo-tooling/gazebodistro/master/sdformat\u003c#\u003e.yaml\n```\n\n2. Build from source\n\nNote: the Gazebo library dependencies are going to be compiled from source\nwith sdformat although it should be possible to install them from\nconda-forge on stable Gazebo releases using the standard conda install\ncommand.\n\nBuild the gazebo libraries needed as dependencies (skip testing to speed up the compilation)\nusing the [colcon](https://colcon.readthedocs.io/en/released/) tool:\n```\n  colcon build --cmake-args -DBUILD_TESTING=OFF --merge-install --packages-skip sdformat\u003c#\u003e\n```\n\nBuild sdformat with its test suite:\n```\n  colcon build --cmake-args -DBUILD_TESTING=ON --merge-install --packages-select sdformat\u003c#\u003e\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgazebosim%2Fsdformat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgazebosim%2Fsdformat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgazebosim%2Fsdformat/lists"}