index.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. <!DOCTYPE html>
  2. <html lang="en-us">
  3. <head>
  4. <title>jMonkeyEngine | Minie Physics Library Version 1.4 Released!</title>
  5. <meta name="viewport" content="width=device-width,minimum-scale=1">
  6. <meta name="description"
  7. content="jMonkeyEngine is a modern developer friendly game engine written primarily in Java. ">
  8. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
  9. <link rel="stylesheet" href="/css/style.css">
  10. <meta name="twitter:card" content="summary"/>
  11. <meta name="twitter:title" content="Minie Physics Library Version 1.4 Released!"/>
  12. <meta name="twitter:description" content="Minie version 1.4 is an exciting new add-on for the JMonkeyEngine (JME) game engine.
  13. Minie provides an open-source physics engine for desktop games. It gives software developers using JME access to the proven technology of the Bullet Physics SDK version 2.89,
  14. including:
  15. rigid-body dynamics, soft bodies, collision detection, vehicle and character controllers, ray and sweep tests, and dynamic constraints. Minie incorporates DynamicAnimControl technology for ragdoll simulation and inverse kinematics."/>
  16. <meta property="og:title" content="Minie Physics Library Version 1.4 Released!" />
  17. <meta property="og:description" content="Minie version 1.4 is an exciting new add-on for the JMonkeyEngine (JME) game engine.
  18. Minie provides an open-source physics engine for desktop games. It gives software developers using JME access to the proven technology of the Bullet Physics SDK version 2.89,
  19. including:
  20. rigid-body dynamics, soft bodies, collision detection, vehicle and character controllers, ray and sweep tests, and dynamic constraints. Minie incorporates DynamicAnimControl technology for ragdoll simulation and inverse kinematics." />
  21. <meta property="og:type" content="article" />
  22. <meta property="og:url" content="https://jmonkeyengine.org/blog/minie14/" /><meta property="article:section" content="blog" />
  23. <meta property="article:published_time" content="2020-02-09T08:00:00+00:00" />
  24. <meta property="article:modified_time" content="2020-02-09T08:00:00+00:00" />
  25. <meta itemprop="name" content="Minie Physics Library Version 1.4 Released!">
  26. <meta itemprop="description" content="Minie version 1.4 is an exciting new add-on for the JMonkeyEngine (JME) game engine.
  27. Minie provides an open-source physics engine for desktop games. It gives software developers using JME access to the proven technology of the Bullet Physics SDK version 2.89,
  28. including:
  29. rigid-body dynamics, soft bodies, collision detection, vehicle and character controllers, ray and sweep tests, and dynamic constraints. Minie incorporates DynamicAnimControl technology for ragdoll simulation and inverse kinematics."><meta itemprop="datePublished" content="2020-02-09T08:00:00+00:00" />
  30. <meta itemprop="dateModified" content="2020-02-09T08:00:00+00:00" />
  31. <meta itemprop="wordCount" content="238">
  32. <meta itemprop="keywords" content="library,physics,software,minie,blog,misc," />
  33. <script src="/js/old-browser.js"></script>
  34. <link rel="stylesheet" href="/css/old-browser.css">
  35. <script src="/highlight/highlight.pack.js"></script>
  36. <script
  37. src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
  38. <link rel="stylesheet" href="/highlight/styles/railscasts.css">
  39. <script type="text/javascript">
  40. hljs.initHighlightingOnLoad();
  41. hljs.initLineNumbersOnLoad();
  42. </script>
  43. <script src="/js/utils.js"></script>
  44. <script src="/js/showcase.js"></script>
  45. <script type="module" src="/js/Main.js"></script>
  46. <script src="https://cdnjs.cloudflare.com/ajax/libs/later/1.2.0/later.min.js" integrity="sha512-4OyNDMl5KLKjS8F1ImVwUvmthM8HkXbR6vMafCmT5zBTd9I/sA3z3zM0JLBosHW6/3K2jq2RoBo/eTUNS2hOGA==" crossorigin="anonymous"></script>
  47. <script src="/js/maintenance/maintenance.js"></script>
  48. <link rel="stylesheet" href="/js/maintenance/maintenance.css">
  49. <script src="/js/christmas/Christmas.js"></script>
  50. <script>
  51. Christmas.init(
  52. "https://jmonkeyengine.org/js/christmas/",
  53. ["figure.githubUser img", 'img.avatar', "#showcase button"],
  54. [
  55. {
  56. type: "attribute",
  57. value: "src",
  58. transform:function(src){
  59. if(src.startsWith("/user_avatar/hub.jmonkeyengine.org/")) {
  60. return src.substring("/user_avatar/hub.jmonkeyengine.org/".length).split("/")[0];
  61. }
  62. return src;
  63. }
  64. },
  65. {
  66. type: "attribute",
  67. value: "title"
  68. },
  69. {
  70. type: "text"
  71. }
  72. ],
  73. ["header img.avatar"]
  74. );
  75. </script>
  76. </head>
  77. <body>
  78. <header> <nav class="responsiveWidth " id="topmenu">
  79. <div class="expandable">
  80. <a href="https://jmonkeyengine.org/" alt-href="https://jmonkeyengine.org/tags,https://jmonkeyengine.org/authors,https://jmonkeyengine.org/devlog,https://jmonkeyengine.org/blog,,https://jmonkeyengine.org/communitylog">
  81. <button class="genericCl responsiveIcon expandable ">
  82. <i class="fas fa-home"></i> <span>Home</span>
  83. </button>
  84. </a>
  85. <a href="https://jmonkeyengine.org/tags/showcase" alt-href="https://jmonkeyengine.org/showcase">
  86. <button class="genericCl responsiveIcon expandable ">
  87. <i class="fas fa-images"></i> <span>Showcase</span>
  88. </button>
  89. </a>
  90. <a href="https://hub.jmonkeyengine.org">
  91. <button class="genericCl responsiveIcon expandable ">
  92. <i class="fab fa-discourse"></i> <span>Discussions</span>
  93. </button>
  94. </a>
  95. <a href="https://library.jmonkeyengine.org" >
  96. <button class="genericCl responsiveIcon expandable ">
  97. <i class="fas fa-puzzle-piece"></i> <span>Library</span>
  98. </button>
  99. </a>
  100. <a href="https://jmonkeyengine.org/docs">
  101. <button class="genericCl responsiveIcon expandable ">
  102. <i class="fas fa-book"></i> <span>Docs</span>
  103. </button>
  104. </a>
  105. <a href="https://jmonkeyengine.org/license">
  106. <button class="genericCl responsiveIcon expandable toggleable toggledOffPortrait">
  107. <i class="fas fa-balance-scale-right"></i> <span>License</span>
  108. </button>
  109. </a>
  110. </div>
  111. <div class="toggleable toggledOffPortrait expandable">
  112. <a href="https://github.com/jMonkeyEngine/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  113. <button class="icon toggleable toggledOffPortrait codeCl expandable " title="Github">
  114. <i class="fab fa-github-square"></i> <span>Github</span>
  115. </button>
  116. </a>
  117. <a href="https://twitter.com/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  118. <button class="icon twitterCl toggleable toggledOffPortrait expandable " title="Follow on Twitter">
  119. <i class="fab fa-twitter"></i> <span>Twitter</span>
  120. </button>
  121. </a>
  122. <a href="https://www.youtube.com/channel/UC-Fs3R5Q6wW_XYspOXGZgPw" rel='noopener noreferrer'
  123. target="_blank">
  124. <button class="icon youtubeCl toggleable toggledOffPortrait expandable " title="Follow on Youtube">
  125. <i class="fab fa-youtube"></i> <span>Youtube</span>
  126. </button>
  127. </a>
  128. <a href="https://discord.gg/Rv8sfVu" rel='noopener noreferrer' target="_blank">
  129. <button class="icon discordCl toggleable toggledOffPortrait expandable " title="Discord">
  130. <i class="fab fa-discord"></i> <span>Discord</span>
  131. </button>
  132. </a>
  133. <a href="https://jmonkeyengine.org/donate" >
  134. <button class="icon donateCl toggleable toggledOffPortrait expandable " title="Donate">
  135. <i class="fas fa-donate"></i> <span>Donate!</span>
  136. </button>
  137. </a>
  138. </div>
  139. </nav>
  140. <script>
  141. !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.stringSimilarity=e():t.stringSimilarity=e()}(self,(function(){return t={138:t=>{function e(t,e){if((t=t.replace(/\s+/g,""))===(e=e.replace(/\s+/g,"")))return 1;if(t.length<2||e.length<2)return 0;let r=new Map;for(let e=0;e<t.length-1;e++){const n=t.substring(e,e+2),o=r.has(n)?r.get(n)+1:1;r.set(n,o)}let n=0;for(let t=0;t<e.length-1;t++){const o=e.substring(t,t+2),s=r.has(o)?r.get(o):0;s>0&&(r.set(o,s-1),n++)}return 2*n/(t.length+e.length-2)}t.exports={compareTwoStrings:e,findBestMatch:function(t,r){if(!function(t,e){return"string"==typeof t&&!!Array.isArray(e)&&!!e.length&&!e.find((function(t){return"string"!=typeof t}))}(t,r))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");const n=[];let o=0;for(let s=0;s<r.length;s++){const i=r[s],f=e(t,i);n.push({target:i,rating:f}),f>n[o].rating&&(o=s)}return{ratings:n,bestMatch:n[o],bestMatchIndex:o}}}}},e={},function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}(138);var t,e}));
  142. window.initJmeMenu=function () {
  143. const selectionClass= window.selectedTopMenuClass || "highlightedCl";
  144. const topmenu = document.querySelector('#topmenu');
  145. if (window.location.href.startsWith("http://localhost:1313")) {
  146. for (const a of topmenu.querySelectorAll("a")) {
  147. a.href = a.href.replace("https://jmonkeyengine.org", "http://localhost:1313");
  148. }
  149. }
  150. const likelyScore=[];
  151. for (const a of topmenu.querySelectorAll("a")) {
  152. const pageUrl=window.location.href.endsWith("/")?window.location.href.substring(0,window.location.href.length-1):window.location.href;
  153. const process = (linkUrls) => {
  154. if(!linkUrls)return;
  155. for(let linkUrl of linkUrls){
  156. if (linkUrl != null) {
  157. if (window.location.href.startsWith("http://localhost:1313")) {
  158. linkUrl = linkUrl.replace("https://jmonkeyengine.org", "http://localhost:1313");
  159. }
  160. if (linkUrl.endsWith("/")) {
  161. linkUrl = linkUrl.substring(0, linkUrl.length - 1);
  162. }
  163. const score = stringSimilarity.compareTwoStrings(linkUrl, pageUrl);
  164. likelyScore.push(
  165. {
  166. score: score,
  167. el: a.querySelector("button")
  168. }
  169. );
  170. }
  171. }
  172. }
  173. process([a.href]);
  174. process(a.getAttribute("alt-href")?a.getAttribute("alt-href").split(","):undefined);
  175. }
  176. likelyScore.sort((a, b) => b.score - a.score);
  177. likelyScore.forEach(el=>el.el.classList.remove(selectionClass));
  178. likelyScore[0].el.classList.add(selectionClass);
  179. };
  180. document.addEventListener('DOMContentLoaded', function(){
  181. window.initJmeMenu();
  182. });
  183. </script>
  184. <div id="siteTitle" class="list hlist responsiveWidth">
  185. <div id="logo">
  186. <a href="/">
  187. <img src="/images/jme-logo.png" />
  188. </a>
  189. <i class="toggleNavOnPortraitButton fas fa-bars" toggle="topmenu"></i>
  190. </div>
  191. <div id="contributionsBanner">
  192. <div> <i class="fas fa-donate"></i>
  193. Backed by:
  194. <a rel='noopener nofollow noreferrer' target="_blank" id="backerName">The Community</a>
  195. <a rel='noopener nofollow noreferrer' target="_blank"
  196. href="https://opencollective.com/jmonkeyengine#section-contributors"> and more...</a>
  197. </div>
  198. <div>
  199. <i class="fab fa-github-alt"></i>
  200. Contributed by:
  201. <a rel='noopener nofollow noreferrer' target="_blank" id="contributorName">The Community</a>
  202. <a rel='noopener nofollow noreferrer' target="_blank"
  203. href="https://github.com/jMonkeyEngine/jmonkeyengine/graphs/contributors">and more...</a>
  204. </div>
  205. </div>
  206. </div>
  207. </header>
  208. <main>
  209. <section id="showcase" mode="banner">
  210. <i id="playButton" class=" fas fa-play"></i>
  211. <div class="showcaseElement" style='display: block '>
  212. <div class="cover blur" style ="background-image: url('/images/showcase/depthris/4.webp'); " ></div>
  213. <div class="cover" style ="background-image: url('/images/showcase/depthris/4.webp'); " ></div>
  214. </div>
  215. <div class="showcaseElement" style='display: none '>
  216. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/2.webp'); " ></div>
  217. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/2.webp'); " ></div>
  218. </div>
  219. <div class="showcaseElement" style='display: none '>
  220. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/3.webp'); " ></div>
  221. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/3.webp'); " ></div>
  222. </div>
  223. <div class="showcaseElement" style='display: none '>
  224. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/5.webp'); " ></div>
  225. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/5.webp'); " ></div>
  226. </div>
  227. <div class="showcaseElement" style='display: none '>
  228. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/1.webp'); " ></div>
  229. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/1.webp'); " ></div>
  230. </div>
  231. <div class="showcaseElement" style='display: none '>
  232. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/6.webp'); " ></div>
  233. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/6.webp'); " ></div>
  234. </div>
  235. <div class="responsiveWidth" id="engineDescription">
  236. jMonkeyEngine is a modern developer friendly game engine written primarily in Java.
  237. <br />
  238. Its minimalistic and code first approach makes it perfect for developers who want the support of a game engine
  239. while retaining full control over their code with the ability to extend and adapt the engine to their workflow.
  240. <br />
  241. <br />
  242. <br />
  243. <a href="/start/"><button id="startbtn" class="highlightedCl" ><i class="fas fa-rocket"></i> Get Started </button></a>
  244. <a href="/#features" title="overview"><button id="startbtn" class="highlightedCl"><i class="fas fa-question-circle" style="padding:0"></i></button></a>
  245. <br />
  246. <br />
  247. </div>
  248. <div class="responsiveWidth" >
  249. <div id="gameDescription" >
  250. <h2><i class="far fa-images" ></i> DEPTHRIS powered by jMonkeyEngine</h2>
  251. 3D puzzle game inspired by the classic title for DOS.
  252. Move and rotate the pieces so they fit in the spaces and fill as much floors as possibles.
  253. But on each level, the pieces will start falling …
  254. <br />
  255. <a class="readMore" href="/showcase/depthris/#showcase">See game page </a>
  256. </div>
  257. </div>
  258. </section>
  259. <br/>
  260. <section class="message list vlist">
  261. <div>
  262. <blockquote class="list vlist responsive">
  263. <span id="backerMessage">-</span>
  264. <i><a rel='noopener nofollow noreferrer' target="_blank" id="backerMessageName">-</a> </i>
  265. </blockquote>
  266. <a href="https://opencollective.com/jmonkeyengine">Become a
  267. backer and leave a message...</a>
  268. </div>
  269. </section>
  270. <br/>
  271. <a id="content"></a>
  272. <section class="full responsiveWidth">
  273. <article>
  274. <h1 >
  275. <i class="fas fa-paragraph useless"></i>
  276. <a href="/blog/minie14/">Minie Physics Library Version 1.4 Released!</a></h1>
  277. <div class="content">
  278. <span>
  279. <p>Minie version 1.4 is an exciting new add-on for <a href="https://jmonkeyengine.org">the JMonkeyEngine (JME) game engine</a>.</p>
  280. <figure><img src="https://i.imgur.com/YdoHlbf.jpg"/>
  281. </figure>
  282. <p>Minie provides an <a href="https://en.wikipedia.org/wiki/Open-source_software">open-source</a> physics <a href="https://en.wikipedia.org/wiki/Physics_engine">engine</a> for desktop games. It gives software developers using JME access to the proven technology of <a href="https://github.com/bulletphysics/bullet3/releases/tag/2.89">the Bullet Physics SDK version 2.89</a>,<br>
  283. including:</p>
  284. <ul>
  285. <li><a href="https://en.wikipedia.org/wiki/Rigid_body_dynamics">rigid-body dynamics</a>,</li>
  286. <li><a href="https://en.wikipedia.org/wiki/Soft-body_dynamics">soft bodies</a>,</li>
  287. <li><a href="https://en.wikipedia.org/wiki/Collision_detection">collision detection</a>,</li>
  288. <li>vehicle and character controllers,</li>
  289. <li>ray and sweep tests, and</li>
  290. <li>dynamic constraints.</li>
  291. </ul>
  292. <p>Minie incorporates <a href="https://hub.jmonkeyengine.org/t/introducing-dynamicanimcontrol/41075">DynamicAnimControl</a> technology for <a href="https://en.wikipedia.org/wiki/Ragdoll_physics">ragdoll simulation</a> and <a href="http://radiomonash.com/inverse-kinematics-video-games-thing-happens-games-never-knew-word/">inverse kinematics</a>.<br>
  293. It supports the use of <a href="https://kmamou.blogspot.com/2011/10/hacd-hierarchical-approximate-convex.html">Khaled Mamou V-HACD algorithm</a> to decompose complicated shapes for efficient simulation.</p>
  294. <p>Minie&rsquo;s <a href="https://en.wikipedia.org/wiki/Application_programming_interface">API</a> closely mimics those of JME&rsquo;s official physics libraries: jme3-bullet and jme3-jbullet, so existing JME applications should require little or no modification to work with Minie.</p>
  295. <p>Minie&rsquo;s documentation starts with a <a href="https://github.com/stephengold/Minie/blob/master/README.md">70-KB README file</a>.<br>
  296. It comes with a dozen demo applications, some tutorials, and an extensive test suite, all open-source.<br>
  297. Its Javadoc describes all public methods and their arguments, and the source code includes additional inline documentation.</p>
  298. <p>The release of Minie 1.4 was first announced <a href="https://hub.jmonkeyengine.org/t/the-minie-physics-library/41839/119">on 8 February 2020 at the JME Forum</a>.<br>
  299. The software can easily be obtained for free.</p>
  300. <p>Pre-built Maven artifacts are served by <a href="https://bintray.com/stephengold/com.github.stephengold/Minie">JCenter</a>.<br>
  301. Its complete source code and build scripts are in <a href="https://github.com/stephengold/Minie/releases/tag/1.4.0for32">a public GitHub repository</a>.</p>
  302. <p>And of course it has its own <a href="https://jmonkeystore.com/38308161-c3cf-4e23-8754-528ca8387c11">page at Jmonkeystore</a>.</p>
  303. <p>Whether you&rsquo;re starting a new game project, dissatisfied with the official physics libraries, or simply curious about the future of open-source game physics, you owe it to yourself to try Minie!</p>
  304. </span>
  305. <nav>
  306. <ul class="tags smaller">
  307. <h3 class="tags">Tags</h3>
  308. <li><a class="library" href="/tags/library"><i class="fas fa-hashtag"></i>library</a></li>
  309. <li><a class="physics" href="/tags/physics"><i class="fas fa-hashtag"></i>physics</a></li>
  310. <li><a class="software" href="/tags/software"><i class="fas fa-hashtag"></i>software</a></li>
  311. <li><a class="minie" href="/tags/minie"><i class="fas fa-hashtag"></i>minie</a></li>
  312. <li><a class="blog" href="/tags/blog"><i class="fas fa-hashtag"></i>blog</a></li>
  313. <li><a class="misc" href="/tags/misc"><i class="fas fa-hashtag"></i>misc</a></li>
  314. </ul>
  315. <ul class="authors smaller">
  316. <h3 class="authors">Authors</h3>
  317. <li><a class="stephengold" href="/authors/stephengold"><i class="fas fa-at"></i>stephengold</a></li>
  318. </ul>
  319. <ul class="postedDate smaller">
  320. <h3 class="postedDate">Date</h3>
  321. <li><time datetime="2020-02-09 08:00:00 &#43;0000 UTC"><i class="fas fa-calendar"></i>09 February 2020</time> </li>
  322. </ul>
  323. <ul class="share">
  324. <h3 class="share">Share</h3>
  325. <li>
  326. <button><a href="https://twitter.com/share?ref_src=twsrc%5Etfw&text=Minie%20version%201.4%20is%20an%20exciting%20new%20add-on%20for%20the%20JMonkeyEngine%20%28JME%29%20game%20engine.%0aMinie%20provides%20an%20open-source%20physics%20engine%20for%20desktop%20games.%20%e2%80%a6 " >
  327. <i class="fab fa-twitter-square"></i> Share on Twitter</a></button></li>
  328. </ul>
  329. </nav>
  330. </div>
  331. </article>
  332. </section>
  333. <section class="full responsiveWidth">
  334. <article>
  335. <h1 id="comments"><i class="useless fas fa-comments"></i> Comments</h1>
  336. <div class="content" id='discourse-comments'></div>
  337. <script type="text/javascript">
  338. var eurl=window.location.href ;
  339. eurl=eurl.split("#")[0];
  340. eurl=eurl.split("?")[0];
  341. eurl=eurl.trim();
  342. if(eurl.endsWith("/index.html"))eurl=eurl.substring(0,eurl.length-"/index.html".length).trim();
  343. if(eurl.charAt(eurl.length-1)=="/") eurl=eurl.substring(0,eurl.length-1);
  344. if(eurl.startsWith("http://")) eurl="https://"+eurl.substring("http://".length);
  345. if(eurl.endsWith("/communitylog/new-website")){
  346. eurl+="/#content";
  347. }
  348. DiscourseEmbed = {
  349. discourseUrl: 'https://hub.jmonkeyengine.org/',
  350. discourseEmbedUrl: eurl
  351. };
  352. (function() {
  353. var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
  354. d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
  355. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
  356. })();
  357. </script>
  358. </article>
  359. </section>
  360. </main>
  361. <footer>
  362. © 2020 jMonkeyEngine.
  363. All other trademarks, logos and featured content are property of their respective owners.
  364. <br />
  365. <a title="Github repo" rel='noopener nofollow noreferrer' target="_blank"
  366. href="https://github.com/jMonkeyEngine/jmonkeyengine-website">
  367. <i class="fab fa-github"></i> Source on Github
  368. </a>
  369. |
  370. <a title="Report issue" rel='noopener nofollow noreferrer' target="_blank"
  371. href="https://github.com/jMonkeyEngine/jmonkeyengine-website/issues">
  372. <i class="fas fa-bug"></i> Report an issue
  373. </a>
  374. <br />
  375. <br />
  376. Website designed and developed by
  377. <a href="https://github.com/riccardobl">Riccardo Balbo</a>
  378. for the jMonkeyEngine's Community.
  379. </footer>
  380. <div id="poweredBy" >
  381. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.macstadium.com/">
  382. <img src="/images/macstadium-logo.png" />
  383. </a>
  384. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.java.com/">
  385. <img src="/images/java-logo.png" />
  386. </a>
  387. <a rel='noopener nofollow noreferrer' target="_blank" href="https://opengl.org/">
  388. <img src="/images/opengl-logo.png" />
  389. </a>
  390. </div>
  391. </body>
  392. </html>