{"id":17250122,"url":"https://github.com/stephengold/libbulletjme","last_synced_at":"2025-10-12T04:05:03.895Z","repository":{"id":41128706,"uuid":"151011394","full_name":"stephengold/Libbulletjme","owner":"stephengold","description":"A JNI interface to Bullet Physics and V-HACD","archived":false,"fork":false,"pushed_at":"2025-03-27T08:04:53.000Z","size":15585,"stargazers_count":90,"open_issues_count":5,"forks_count":11,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T23:09:29.530Z","etag":null,"topics":["android-library","bullet-physics","bullet-physics-engine","collision-detection","collision-shape","java","java-bindings","jni","jvm-library","library","open-source","physics","physics-3d","physics-simulation","rigid-bodies","rigid-body-dynamics","soft-bodies","soft-body-simulation","vhacd","vhacd-library"],"latest_commit_sha":null,"homepage":"https://stephengold.github.io/Libbulletjme/lbj-en/English/overview.html","language":"C++","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/stephengold.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":"2018-09-30T22:09:01.000Z","updated_at":"2025-03-27T08:03:37.000Z","dependencies_parsed_at":"2023-10-12T00:57:43.627Z","dependency_job_id":"917db0b6-0f71-4895-aa83-054dc6ab584a","html_url":"https://github.com/stephengold/Libbulletjme","commit_stats":{"total_commits":2814,"total_committers":6,"mean_commits":469.0,"dds":"0.019189765458422214","last_synced_commit":"df3840800a042c97857bb99a4ee3b92309a9c55e"},"previous_names":[],"tags_count":251,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FLibbulletjme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FLibbulletjme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FLibbulletjme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FLibbulletjme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephengold","download_url":"https://codeload.github.com/stephengold/Libbulletjme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415967,"owners_count":20935387,"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":["android-library","bullet-physics","bullet-physics-engine","collision-detection","collision-shape","java","java-bindings","jni","jvm-library","library","open-source","physics","physics-3d","physics-simulation","rigid-bodies","rigid-body-dynamics","soft-bodies","soft-body-simulation","vhacd","vhacd-library"],"created_at":"2024-10-15T06:46:14.812Z","updated_at":"2025-10-12T04:05:03.884Z","avatar_url":"https://github.com/stephengold.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg height=\"150\" src=\"https://i.imgur.com/YEPFEcx.png\" alt=\"Libbulletjme Project logo\"\u003e\n\nThe [Libbulletjme Project][libbulletjme] adds JNI \"glue code\"\nto portions of [Bullet Physics][bullet]\nand [Khaled Mamou's V-HACD Library][vhacd],\nenabling 3-D physics simulation from [Java] applications.\n\nComplete source code (in C++ and Java) is provided under\n[a mixed open-source license][license].\nPre-built Maven artifacts are also provided.\n\nThe project supports the 3 major desktop operating systems on x86_64 architecture:\nWindows, Linux, and macOS.\nIt also supports Linux on ARM (both armhf and aarch64) and macOS on ARM\nand 4 Android ABIs (armeabi-v7a, arm64-v8a, x86, and x86_64),\nmaking a total of 10 platforms.\n\nFor each desktop platform, 4 native libraries are provided:\n+ a release build using single-precision arithmetic (the default library)\n+ a release build using double-precision arithmetic\n+ a debug build using single-precision arithmetic\n+ a debug build using double-precision arithmetic\n\nIn addition, multithreaded native libraries\nare provided for 64-bit architectures running Windows or Linux.\n\nLibbulletjme is used in\n[the DynamX Physics Mod for Minecraft][dynamx].\n\nLibbulletjme's native libraries are used in [Minie],\nwhich integrates Libbulletjme into [the jMonkeyEngine game engine][jme].\n\n\n\u003ca name=\"toc\"\u003e\u003c/a\u003e\n\n## Contents of this document\n\n+ [How to add Libbulletjme to an existing project](#add)\n+ [Example applications](#examples)\n+ [How to build Libbulletjme from source](#build)\n+ [Lexicon of class/enum/struct names](#lexicon)\n+ [What's missing](#todo)\n+ [External links](#links)\n+ [History](#history)\n+ [Acknowledgments](#acks)\n\n\n\u003ca name=\"add\"\u003e\u003c/a\u003e\n\n## How to add Libbulletjme to an existing project\n\n[How to add Libbulletjme to an existing project](https://stephengold.github.io/Libbulletjme/lbj-en/add.html)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"examples\"\u003e\u003c/a\u003e\n\n## Example applications\n\n+ [HelloLibbulletjme](https://github.com/stephengold/LbjExamples/blob/master/apps/src/main/java/com/github/stephengold/lbjexamples/apps/console/HelloLibbulletjme.java):\n  drop a dynamic sphere onto a horizontal surface\n\n+ [HelloVehicle0](https://github.com/stephengold/LbjExamples/blob/master/apps/src/main/java/com/github/stephengold/lbjexamples/apps/console/HelloVehicle0.java):\n  drive a vehicle on a horizontal surface\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"build\"\u003e\u003c/a\u003e\n\n## How to build Libbulletjme from source\n\n[How to build Libbulletjme from source](https://stephengold.github.io/Libbulletjme/lbj-en/English/build.html)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"lexicon\"\u003e\u003c/a\u003e\n\n## Lexicon of class/enum/struct names\n\n[Lexicon of class/enum/struct names](https://stephengold.github.io/Libbulletjme/lbj-en/English/lexicon.html)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"todo\"\u003e\u003c/a\u003e\n\n## What's missing\n\n[What's missing](https://stephengold.github.io/Libbulletjme/lbj-en/English/overview.html#_whats_missing)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"links\"\u003e\u003c/a\u003e\n\n## External links\n\n+ [The Bullet Physics SDK Manual](https://github.com/bulletphysics/bullet3/blob/master/docs/Bullet_User_Manual.pdf)\n+ [The Bullet source-code repository](https://github.com/bulletphysics/bullet3) at [GitHub]\n+ [The LbjExamples project][examples] at [GitHub]\n+ [The Minie project][minie]\n+ [The V-HACD project][vhacd] at [GitHub]\n+ [The SPORT project][sport] at [GitHub]\n+ [The V-Sport project][vsport] at [GitHub]\n+ [The physics section of the jMonkeyEngine Wiki](https://wiki.jmonkeyengine.org/docs/3.4/physics/physics.html)\n+ [The Bullet Forum](https://pybullet.org/Bullet/phpBB3)\n+ [The Bullet home page][bullet]\n+ [JBullet], a known alternative to Libbulletjme\n+ [Alan Chou's game-physics tutorials](https://allenchou.net/game-physics-series/)\n+ [\"Real-time Vehicle Simulation for Video Games Using the Bullet Physics Library\" by Hammad Mazhar](https://sbel.wisc.edu/wp-content/uploads/sites/569/2018/05/Real-time-Vehicle-Simulation-for-Video-Games-Using-the-Bullet-Physics-Library.pdf)\n+ [\"Vehicle Simulation With Bullet\" by Kester Maddock](https://docs.google.com/document/d/18edpOwtGgCwNyvakS78jxMajCuezotCU_0iezcwiFQc)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"history\"\u003e\u003c/a\u003e\n\n## History\n\nThe evolution of this project is chronicled in\n[its release log][log].\n\nThe C++ glue code for Bullet was originally copied from `jme3-bullet-native`,\na library of [jMonkeyEngine][jme].\nThe soft-body portion was added in 2018,\nand is based on the work of Jules (aka \"dokthar\").\n\nThe Java code is based partly jMonkeyEngine,\npartly on [Riccardo's V-hacd-java-bindings][vhacdBindings],\nand partly on [Minie].\nMinie is, in turn, based on `jme3-bullet`, another jMonkeyEngine library.\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"acks\"\u003e\u003c/a\u003e\n\n## Acknowledgments\n\nThe Libbulletjme Project is derived from open-source software:\n\n  + the [Bullet] physics simulation kit\n  + the [jMonkeyEngine][jme] game engine\n  + [Dokthar's fork of jMonkeyEngine](https://github.com/dokthar/jmonkeyengine)\n  + [Khaled Mamou's V-HACD Library][vhacd] for approximate convex decomposition\n  + Riccardo Balbo's [vhacdBindings]\n  + Stephen Gold's [Heart] library\n  + Paul Speed's [SimMath] library\n\nThis project also made use of the following software tools:\n\n  + the [Android Studio][studio], [IntelliJ IDEA][idea], and [NetBeans]\n    integrated development environments\n  + the [Antora] static website generator\n  + the [Checkstyle] tool\n  + the [FindBugs] source-code analyzer\n  + the [GNU Compiler Collection][gcc] and [Project Debugger][gdb]\n  + the [Git] revision-control system and GitK commit viewer\n  + the [Firefox] and [Google Chrome][chrome] web browsers\n  + the [GitKraken] client\n  + the [Gradle] build tool\n  + the [Java] compiler, standard doclet, and runtime environment\n  + [jMonkeyEngine][jme] and the jME3 Software Development Kit\n  + the [Linux Mint][mint] operating system\n  + the [LLVM Compiler Infrastructure][llvm]\n  + the [Markdown] document-conversion tool\n  + the [Meld] visual merge tool\n  + Microsoft Windows and Visual Studio\n\nI am grateful to Riccardo Balbo (aka \"riccardo\") for bringing\nV-HACD to my attention.\n\nI am grateful to [\"dustContributor\"](https://github.com/dustContributor)\nfor [optimizing the cleaner thread](https://github.com/stephengold/Libbulletjme/pull/13).\n\nI am grateful to \"elmfrain\" for authoring the `GearJoint` class.\n\nI am grateful to [GitHub], [Sonatype], [AppVeyor],\n[Travis], [MacStadium], [JFrog], and [Imgur]\nfor providing free hosting for this project\nand many other open-source projects.\n\n\u003ca href=\"https://www.macstadium.com/opensource/members\"\u003e\n\u003cimg height=\"100\" src=\"https://i.imgur.com/N6J0UBG.png\" alt=\"Powered By MacStadium logo\"\u003e\n\u003c/a\u003e\n\nI am grateful to ndebruyn for helping me test the Android native libraries.\n\nI am grateful to Pavly Gerges for helping me test the armhf native library.\n\nI am grateful to Yanis Boudiaf and \"qwq\" for many helpful suggestions.\n\nI'm also grateful to my dear Holly, for keeping me sane.\n\nIf I've misattributed anything or left anyone out, please let me know, so I can\ncorrect the situation: sgold@sonic.net\n\n[Jump to the table of contents](#toc)\n\n\n[antora]: https://antora.org/ \"Antora Project\"\n[appveyor]: https://www.appveyor.com \"AppVeyor Continuous Integration\"\n[bullet]: https://pybullet.org/wordpress \"Bullet Real-Time Physics Simulation\"\n[checkstyle]: https://checkstyle.org \"Checkstyle\"\n[chrome]: https://www.google.com/chrome \"Chrome\"\n[dynamx]: https://dynamx.fr \"DynamX Project\"\n[examples]: https://github.com/stephengold/LbjExamples \"LbjExamples Project\"\n[findbugs]: https://findbugs.sourceforge.net/ \"FindBugs Project\"\n[firefox]: https://www.mozilla.org/en-US/firefox \"Firefox\"\n[gcc]: https://gcc.gnu.org \"GNU Compiler Collection\"\n[gdb]: https://www.gnu.org/software/gdb/ \"GNU Project Debugger\"\n[git]: https://git-scm.com \"Git\"\n[github]: https://github.com \"GitHub\"\n[gitkraken]: https://www.gitkraken.com \"GitKraken client\"\n[gradle]: https://gradle.org \"Gradle Project\"\n[heart]: https://github.com/stephengold/Heart \"Heart Project\"\n[idea]: https://www.jetbrains.com/idea/ \"IntelliJ IDEA\"\n[imgur]: https://imgur.com/ \"Imgur\"\n[java]: https://en.wikipedia.org/wiki/Java_(programming_language) \"Java programming language\"\n[jbullet]: http://jbullet.advel.cz \"JBullet\"\n[jfrog]: https://www.jfrog.com \"JFrog\"\n[jme]: https://jmonkeyengine.org \"jMonkeyEngine Project\"\n[libbulletjme]: https://stephengold.github.io/Libbulletjme \"Libbulletjme Project\"\n[license]: https://github.com/stephengold/Libbulletjme/blob/master/LICENSE \"Libbulletjme license\"\n[llvm]: https://www.llvm.org \"LLVM Compiler\"\n[log]: https://github.com/stephengold/Libbulletjme/blob/master/release-notes.md \"release log\"\n[macstadium]: https://www.macstadium.com/ \"MacStadium\"\n[markdown]: https://daringfireball.net/projects/markdown \"Markdown Project\"\n[meld]: https://meldmerge.org \"Meld merge tool\"\n[minie]: https://stephengold.github.io/Minie \"Minie Project\"\n[mint]: https://linuxmint.com \"Linux Mint Project\"\n[netbeans]: https://netbeans.org \"NetBeans Project\"\n[simmath]: https://github.com/Simsilica/SimMath \"SimMath Library\"\n[sonatype]: https://www.sonatype.com \"Sonatype\"\n[sport]: https://github.com/stephengold/sport \"SPORT Project\"\n[studio]: https://developer.android.com/studio \"Android Studio IDE\"\n[travis]: https://travis-ci.com \"Travis CI\"\n[vhacd]: https://github.com/kmammou/v-hacd \"V-HACD Library\"\n[vhacdBindings]: https://github.com/riccardobl/v-hacd-java-bindings \"Riccardo's V-hacd-java-bindings Project\"\n[vsport]: https://github.com/stephengold/V-Sport \"V-Sport Project\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephengold%2Flibbulletjme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephengold%2Flibbulletjme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephengold%2Flibbulletjme/lists"}