{"id":17250075,"url":"https://github.com/stephengold/acorus","last_synced_at":"2025-04-14T05:09:48.675Z","repository":{"id":38244514,"uuid":"452137364","full_name":"stephengold/Acorus","owner":"stephengold","description":"An action-oriented user-interface library for jMonkeyEngine","archived":false,"fork":false,"pushed_at":"2025-04-05T16:04:07.000Z","size":2159,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-14T05:09:39.650Z","etag":null,"topics":["acorus","antora","documentation-website","java","jme3","jmonkeyengine3","jvm-library","library","open-source","tutorial","user-interface"],"latest_commit_sha":null,"homepage":"https://stephengold.github.io/Acorus/acorus-en/English/overview.html","language":"Java","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/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":"2022-01-26T04:14:57.000Z","updated_at":"2025-04-05T16:03:35.000Z","dependencies_parsed_at":"2023-10-15T18:46:44.740Z","dependency_job_id":"e747ce82-e2f9-4a14-84bd-4c821efef3af","html_url":"https://github.com/stephengold/Acorus","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/stephengold%2FAcorus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FAcorus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FAcorus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephengold%2FAcorus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephengold","download_url":"https://codeload.github.com/stephengold/Acorus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248824681,"owners_count":21167345,"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":["acorus","antora","documentation-website","java","jme3","jmonkeyengine3","jvm-library","library","open-source","tutorial","user-interface"],"created_at":"2024-10-15T06:46:08.042Z","updated_at":"2025-04-14T05:09:48.651Z","avatar_url":"https://github.com/stephengold.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg height=\"150\" src=\"https://i.imgur.com/RN3bz0h.png\" alt=\"Acorus screenshot\"\u003e\n\n[The Acorus Project][acorus] provides\na simple user-interface library\nfor [the jMonkeyEngine (JME) game engine][jme].\n\nIt contains 2 subprojects:\n\n1. AcorusLibrary: the Acorus [JVM] runtime library\n2. AcorusExamples: demos, examples, and non-automated test software\n\nComplete source code (in [Java]) is provided under\n[a 3-clause BSD license][license].\n\nAcorus is oriented toward keyboard-driven demo/test applications.\nExamples may be found in the [Heart], [Minie], [MonkeyWrench], and [Wes] projects.\n\n\n\u003ca name=\"toc\"\u003e\u003c/a\u003e\n\n## Contents of this document\n\n+ [Important features](#features)\n+ [How to add Acorus to an existing project](#add)\n+ [How to build Acorus from source](#build)\n+ [Downloads](#downloads)\n+ [Conventions](#conventions)\n+ [An overview of the example applications](#examples)\n+ [History](#history)\n+ [Acknowledgments](#acks)\n\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\n\n## Important features\n\nAcorus is a user-interface library for JMonkeyEngine desktop applications\nthat don't require graphical widgets\nsuch as checkboxes, radio buttons, and sliders.\n\nAcorus provides simple mechanisms to:\n+ bind keyboard keys, mouse buttons, and joystick buttons (hotkeys)\n  to names that are meaningful to the application (actions)\n+ determine which hotkeys are active (signals)\n+ detect input combinations such as \"Ctrl+C\" (combos)\n+ use different hotkey bindings in different contexts (input modes)\n+ display on-screen UI help for the active input mode,\n  localized for the system's keyboard layout (help nodes)\n\nInput modes can be configured dynamically and/or loaded from files.\n\nHelp nodes make Acorus-based user interfaces (somewhat) self-documenting.\n\nThe Acorus library also includes:\n+ 2 implementations of the `Application` interface, tailored for demos\n  (`ActionApplication` and `AcorusDemo`)\n+ an input mode for emulating a `SimpleApplication` (`DefaultInputMode`)\n+ a camera controller for orbiting the world's Y axis (`CameraOrbitAppState`)\n+ a display-settings editor (`DsEditInputMode` and `DsEditOverlay`)\n+ a class to simplify the management of asset locators (for asset editors)\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"add\"\u003e\u003c/a\u003e\n\n## How to add Acorus to an existing project\n\n[How to add Acorus to an existing project](https://stephengold.github.io/Acorus/acorus-en/English/add.html)\n\n\n\u003ca name=\"build\"\u003e\u003c/a\u003e\n\n## How to build Acorus from source\n\n[How to build Acorus from source](https://stephengold.github.io/Acorus/acorus-en/English/build.html)\n\n\n\u003ca name=\"downloads\"\u003e\u003c/a\u003e\n\n## Downloads\n\nNewer releases (since v0.9.7) can be downloaded from\n[GitHub](https://github.com/stephengold/Acorus/releases).\n\nOld releases (through v0.9.6) can be downloaded from\n[the Jme3-utilities Project](https://github.com/stephengold/jme3-utilities/releases).\n\nNewer Maven artifacts (since v0.9.7) are available from\n[MavenCentral](https://central.sonatype.com/artifact/com.github.stephengold/Acorus/2.0.2/versions).\n\nOld Maven artifacts (v0.9.2 through v0.9.6) are available from\n[MavenCentral jme3-utilities-ui](https://central.sonatype.com/artifact/com.github.stephengold/jme3-utilities-ui/0.9.6/versions).\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"conventions\"\u003e\u003c/a\u003e\n\n## Conventions\n\nPackage names begin with `jme3utilities.ui`\n\nThe source code and pre-built libraries are compatible with JDK 8.\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"examples\"\u003e\u003c/a\u003e\n\n## An overview of the example applications\n\nApplications have been created to illustrate key concepts of Acorus.\nThey are found in the AcorusExamples subproject.\nSince they aren't distributed in binary form,\nyou must build the project from source in order to run them.\n\nTo run them using the included AppChooser:\n+ using Bash or [Fish] or PowerShell or Zsh: `./gradlew --no-daemon AppChooser`\n+ using Windows Command Prompt: `.\\gradlew --no-daemon AppChooser`\n\nTo run a specific app:\n+ using Bash or Fish or PowerShell or Zsh: `./gradlew --no-daemon ` *appName*\n+ using Windows Command Prompt: `.\\gradlew --no-daemon ` *appName*\n\n### HelloAcorus\n\n[Getting started with Acorus](https://stephengold.github.io/Acorus/acorus-en/English/hello.html)\n\n### TestHotkeys and HelloBind\n\n[Binding hotkeys to actions](https://stephengold.github.io/Acorus/acorus-en/English/bind.html)\n\n### HelloSignals\n\n[Binding hotkeys to signals](https://stephengold.github.io/Acorus/acorus-en/English/signal.html)\n\n### HelloCombo\n\n[Binding combos to actions](https://stephengold.github.io/Acorus/acorus-en/English/combo.html)\n\n### HelloSimpleApplication\n\n[Mimicking a simple application](https://stephengold.github.io/Acorus/acorus-en/English/mimic.html)\n\n### HelloToggleHelp\n\n[Toggling the help node](https://stephengold.github.io/Acorus/acorus-en/English/toggle.html)\n\n### TestAcorusDemo\n\n[Additional features of AcorusDemo](https://stephengold.github.io/Acorus/acorus-en/English/more.html)\n\n### HelloSandbox and HelloRecorder\n\n[The Sandbox](https://stephengold.github.io/Acorus/acorus-en/English/sandbox.html)\n\n### TestToggleFly and HelloCoas\n\n[Controlling 3-D cameras](https://stephengold.github.io/Acorus/acorus-en/English/camera.html)\n\n### TestTwoModes and TestCursors\n\n[Defining multiple input modes](https://stephengold.github.io/Acorus/acorus-en/English/modes.html)\n\n### TestDsEdit\n\n[Editing display settings](https://stephengold.github.io/Acorus/acorus-en/English/dsedit.html)\n\n### TestHeadless\n\n[Using Acorus in a headless context](https://stephengold.github.io/Acorus/acorus-en/English/headless.html)\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\nPrior to January 2022, Acorus was a subproject of\n[the Jme3-utilities Project][utilities] named \"jme3-utilities-ui\".\n\nSince January 2022, Acorus has been a separate project, hosted at\n[GitHub][acorus].\n\n[Jump to the table of contents](#toc)\n\n\n\u003ca name=\"acks\"\u003e\u003c/a\u003e\n\n## Acknowledgments\n\nLike most projects, Acorus builds on the work of many who\nhave gone before.  I therefore acknowledge\nthe creators of (and contributors to) the following software:\n\n+ the [Ant] and [Gradle] build tools\n+ the [Antora] static website generator\n+ the [Checkstyle] tool\n+ the [FindBugs] source-code analyzer\n+ the [Firefox] and [Google Chrome][chrome] web browsers\n+ the [Git] and Subversion revision-control systems\n+ the [GitKraken] client\n+ the [Gradle] build tool\n+ the [IntelliJ IDEA][idea] and [NetBeans] integrated development environments\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+ [LWJGL], the Lightweight Java Game Library\n+ the [Markdown] document-conversion tool\n+ the [Meld] visual merge tool\n+ Microsoft Windows\n+ the [NetBeans] integrated development environment\n+ the PMD source-code analyzer\n+ the RealWorld Cursor Editor\n+ the [WinMerge] differencing and merging tool\n\nI am grateful to Juan Cruz Fandino for\n[his pull request](https://github.com/stephengold/Acorus/pull/1).\n\nI am grateful to [GitHub], [Sonatype], [JFrog], and [Imgur]\nfor providing free hosting for this project\nand many other open-source projects.\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[acorus]: https://stephengold.github.io/Acorus \"Acorus Project\"\n[antora]: https://antora.org/ \"Antora Project\"\n[ant]: https://ant.apache.org \"Apache Ant Project\"\n[checkstyle]: https://checkstyle.org \"Checkstyle\"\n[chrome]: https://www.google.com/chrome \"Chrome\"\n[findbugs]: http://findbugs.sourceforge.net \"FindBugs Project\"\n[firefox]: https://www.mozilla.org/en-US/firefox \"Firefox\"\n[fish]: https://fishshell.com/ \"Fish command-line shell\"\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[jfrog]: https://www.jfrog.com \"JFrog\"\n[jme]: https://jmonkeyengine.org \"jMonkeyEngine Project\"\n[jvm]: https://en.wikipedia.org/wiki/Java_virtual_machine \"Java virtual machine\"\n[latest]: https://github.com/stephengold/Acorus/releases/tag/latest \"latest release\"\n[license]: https://github.com/stephengold/Acorus/blob/master/LICENSE \"Acorus license\"\n[log]: https://github.com/stephengold/Acorus/blob/master/AcorusLibrary/release-notes.md \"release log\"\n[lwjgl]: https://www.lwjgl.org \"Lightweight Java Game Library\"\n[markdown]: https://daringfireball.net/projects/markdown \"Markdown Project\"\n[maven]: https://maven.apache.org \"Maven Project\"\n[meld]: https://meldmerge.org \"Meld merge tool\"\n[minie]: https://stephengold.github.io/Minie/minie/overview.html \"Minie Project\"\n[mint]: https://linuxmint.com \"Linux Mint Project\"\n[monkeywrench]: https://github.com/stephengold/MonkeyWrench \"MonkeyWrench Project\"\n[netbeans]: https://netbeans.org \"NetBeans Project\"\n[sonatype]: https://www.sonatype.com \"Sonatype\"\n[utilities]: https://github.com/stephengold/jme3-utilities \"Jme3-utilities Project\"\n[wes]: https://github.com/stephengold/Wes \"Wes Project\"\n[winmerge]: https://winmerge.org \"WinMerge Project\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephengold%2Facorus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephengold%2Facorus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephengold%2Facorus/lists"}