{"id":19215859,"url":"https://github.com/movingblocks/jnbullet","last_synced_at":"2025-11-14T06:04:30.226Z","repository":{"id":38299731,"uuid":"106592587","full_name":"MovingBlocks/JNBullet","owner":"MovingBlocks","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-13T00:14:31.000Z","size":41852,"stargazers_count":8,"open_issues_count":1,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-04T18:31:45.430Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SWIG","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MovingBlocks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-10-11T18:21:31.000Z","updated_at":"2024-06-26T09:48:57.000Z","dependencies_parsed_at":"2024-03-15T22:23:58.169Z","dependency_job_id":"0db5691a-4711-4ab6-9d97-98bf1cefa2e8","html_url":"https://github.com/MovingBlocks/JNBullet","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MovingBlocks%2FJNBullet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MovingBlocks%2FJNBullet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MovingBlocks%2FJNBullet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MovingBlocks%2FJNBullet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MovingBlocks","download_url":"https://codeload.github.com/MovingBlocks/JNBullet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240292512,"owners_count":19778310,"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":[],"created_at":"2024-11-09T14:15:00.355Z","updated_at":"2025-11-14T06:04:30.130Z","avatar_url":"https://github.com/MovingBlocks.png","language":"SWIG","readme":"# JNBullet (Terasology Version)\n\n_JNBullet is a version of [bullet](https://github.com/bulletphysics/bullet3) with extensions for direct interactions for voxel worlds, written for use with Terasology.\nBullet is a real-time collision detection and multi-physics simulation, for instance intended for use in games.\nIn Terasology we use it for simulating gravity for player and object movements as well as for collisions between players and/or objects.\nThis is an implementation of bullet wrapped around native bullet using SWIG._\n\n## Prerequisites\n\nMake sure the following applications are installed:\n\n- Java 11 or later\n- [CMake](https://cmake.org/)\n- [SWIG](https://www.swig.org/) v4.0.2\n- [MinGW-w64](https://www.mingw-w64.org/) (cross-compilation for Windows on Linux)\n\nClone this repository and initialize all git submodules:\n\n```sh\ngit submodule update --init --recursive\n```\n\n## Build\n\nTo build the Java library and all supported natives for the current platform run\n\n```sh\n./gradlew build buildNatives\n```\n\nThe native libraries are written to `build/natives/*` and are `.so`, `dll`, or `.dylib` files.\n\nTo see a list of all known natives (platforms and operating systems), run\n\n```\n./gradlew listNatives\n```\n\nTo build only the Java library part of bullet, simply run \n\n```\n./gradlew build\n```\n\n## Release Management\n\nA _release_ denotes that an artifact for the associated commit is available for consumption. Our\n[GitHub action](https://github.com/MovingBlocks/JNBullet/actions) automatically builds and publishes releases for the main `master` branch.\nThe artifact is published to our [Artifactory] under the version specified in [`gradle.properties`](./gradle.properties).\n\n\u003e ⚠ **Note:** Whether an artifact should be published as release or snapshot is determined by whether or not there is a\n\u003e `-SNAPSHOT` in the version. Publishing will fail in case publishing the same non-snapshot version is attempted\n\u003e again.\n\nThe exact build steps for this library are defined in the [GitHub action workflow](./.github/workflows/allInOne.yml).\n\n🗄 [**Snapshots**](https://artifactory.terasology.io/ui/repos/tree/General/libs-snapshot-local/org/terasology/jnbullet) ▪ [**Releases**](https://artifactory.terasology.io/ui/repos/tree/General/libs-release-local/org/terasology/jnbullet)\n\n### Release Process\n\nAs releases are automatically triggered from `master` the required steps to make a \nnon-snapshot release for any version is as follows:\n\n1. **Decide on release version** ▪ Which branch to publish, under which version?\n\n    _The version number MUST be a higher SemVer than the current version of the branch to release.\n     The version bump SHOULD follow SemVer specifications, e.g., increase the major version for breaking changes, or do\n     a patch release for bug fixes._\n \n1. **Make the release commit** ▪ Trigger a release via the [GitHub Action]\n\n    _Update the version in [gradle.properties](./gradle.properties) and remove the `-SNAPSHOT` suffix. Commit the change with the\n     following message and push it:_\n\n    \u003e `release: version {{version}}`\n\n    _Until we have automatic tagging or a tag-based release process it is recommended to manually\n     [create and push an annotated tag][git-tag] for the respective version on `master`. For a library release v1.2.3\n     the tag process is:_\n    \n    ```sh\n    git tag -a v1.2.3 -m \"Release version 1.2.3\"\n    git push --tags\n    ```\n    \n1. **Prepare for next release** ▪ Bump to next snapshot version\n\n    _Next, we have to increase the version number to be able to get pre-release `-SNAPSHOT` builds for subsequent \n     commits. Therefore, the version number MUST be a higher SemVer than the version just released. This will typically\n     be a minor version bump. To do this, just update the version in [gradle.properties](./gradle.properties), commit the \n     change with the following message and push it:_\n    \n    \u003e `chore: prepare next snapshot for {{version}}`\n\n1. **Make the release visible** ▪ Create the GitHub Release\n\n    _Finally, we need to create the GitHub release to make the new release visible.\n     Navigate to [JNBullet Releases](https://github.com/MovingBlocks/JNBullet/releases) and \"Draft a new release\".\n     Select the tag you created earlier and name the release as \"v{{version}}\", optionally with a descriptive suffix like \" - Initial Release\".\n     \"Generate release notes\" to have GitHub automatically add a list of new changes and contributors since the last release and publish the release._\n\n## Testing\n\nTo test be sure to make the version in `gradle.properties` unique so you can ensure you use it by updating the corresponding version in Terasology's root `build.gradle` (natives) as well as its `engine/build.gradle` (Java wrapper). Use `./gradlew build zipNatives publishToMavenLocal` to get binaries created locally for JNBullet that Terasology can then read, and make sure to refresh its natives (delete the `natives` directory and rerun `gradlew extractNatives`)\n\n## License\n\nThis library is Licensed under the [Apache 2 License](http://www.apache.org/licenses/LICENSE-2.0.html) and is a rework of bullet wrapper\nfrom [libgdx](https://github.com/libgdx/libgdx)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmovingblocks%2Fjnbullet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmovingblocks%2Fjnbullet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmovingblocks%2Fjnbullet/lists"}