HybridSim

所属分类:其他
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2023-09-25 21:11:14
上 传 者sh-1993
说明:  可编程物质二维混合模型的图形模拟器。,
(A graphical simulator for the two-dimensional hybrid model of programmable matter.,)

文件列表:
.editorconfig (305, 2024-01-10)
CITATION.cff (486, 2024-01-10)
LICENSE (1070, 2024-01-10)
assets/ (0, 2024-01-10)
assets/graphics/ (0, 2024-01-10)
assets/graphics/empty_target.png (14573, 2024-01-10)
assets/graphics/grid.png (5191, 2024-01-10)
assets/graphics/robot.png (7147, 2024-01-10)
assets/graphics/tile.png (22303, 2024-01-10)
assets/graphics/tile_pebble.png (37282, 2024-01-10)
assets/ui/ (0, 2024-01-10)
assets/ui/fonts/ (0, 2024-01-10)
assets/ui/fonts/GoNotoUniversal-License.txt (4388, 2024-01-10)
assets/ui/fonts/GoNotoUniversal-standard.fnt (6166638, 2024-01-10)
assets/ui/fonts/GoNotoUniversal-standard.png (2906560, 2024-01-10)
assets/ui/scheduler_off.png (249, 2024-01-10)
assets/ui/scheduler_on.png (544, 2024-01-10)
assets/ui/undo.png (558, 2024-01-10)
build.gradle (970, 2024-01-10)
core/ (0, 2024-01-10)
core/build.gradle (1281, 2024-01-10)
core/src/ (0, 2024-01-10)
core/src/main/ (0, 2024-01-10)
core/src/main/kotlin/ (0, 2024-01-10)
core/src/main/kotlin/com/ (0, 2024-01-10)
core/src/main/kotlin/com/github/ (0, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/ (0, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/ (0, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/MainCLI.kt (4283, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/MainGUI.kt (2521, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/cli/ (0, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/cli/FullSequentialScheduler.kt (1714, 2024-01-10)
core/src/main/kotlin/com/github/jfriemel/hybridsim/entities/ (0, 2024-01-10)
... ...

# HybridSim *HybridSim* is a simulator for the hybrid model for programmable matter. If you are unfamiliar with the model, you can read up on it in chapters 6 and 7 of "Computing by Programmable Particles" by Daymude et al. [1]. I developed this program to aid with the development of hybrid model algorithms while working on my master's thesis "Shape Reconfiguration by Hybrid Programmable Matter" in the Theory of Distributed Systems research group at Paderborn University. ![A screenshot of the main screen of the simulator.](https://github.com/jfriemel/HybridSim/blob/master/doc/screenshot_gui.png "GUI screenshot") ## Usage To be able to launch HybridSim, you need a recent installation of the Java Runtime Environment (version 17 or newer). Download and execute the most recent `.jar` file from the [*Releases*](https://github.com/jfriemel/HybridSim/blob/master/https://github.com/jfriemel/HybridSim/releases/latest) tab on the right. Alternatively, you can build the executable yourself by cloning the repository and running `gradlew build`. Then, you find the `.jar` file in the `lwjgl3/build/lib` directory. ### Basic Features Using the appropriate buttons in the GUI, you can: - load a configuration from [`exampleConfigurations`](https://github.com/jfriemel/HybridSim/blob/master/exampleConfigurations), - load an algorithm script from [`exampleAlgorithms`](https://github.com/jfriemel/HybridSim/blob/master/exampleAlgorithms), - start the scheduler by pressing the large play button, - place (left-click) or remove (right-click) tiles, robots, or target nodes, - load a configuration generator script from [`exampleGenerators`](https://github.com/jfriemel/HybridSim/blob/master/exampleGenerators), and - generate a configuration with the specified number of tiles, robots, and overhangs (tiles on non-target nodes). ### Custom Scripts Algorithms and configuration generators are implemented as Kotlin scripts. Use the [`_Template.kts`](https://github.com/jfriemel/HybridSim/blob/master/exampleAlgorithms/_Template.kts) file from the respective example directory as a starting point for writing your own scripts which can then be loaded as stated above. It may also be helpful for you to look at example implementations such as the script for the [triangle formation algorithm](https://github.com/jfriemel/HybridSim/blob/master/exampleAlgorithms/TriangleFormation.kts) by Gmyr et al. [2]. ### CLI Mode The simulator can also be used to empirically test algorithms in `--nogui` mode. For example, to run the shape reconfiguration algorithm for simply connected input and target shapes introduced in my thesis on 50 randomly generated configurations with 2500 tiles, one robot, and 1000 overhangs, use the following arguments: ``` --nogui --algorithm exampleAlgorithms/ShapeReconfiguration/SC_Input_SC_Target.kts --generator exampleGenerators/ShapeReconfiguration/SC_Input_SC_Target.kts --num_tiles 2500 --num_robots 1 --num_overhangs 1000 --num_runs 50 --seed 2023 --output result.csv ``` For a list of all accepted arguments with explanations, run HybridSim with `--help`. ## References [1] Joshua J. Daymude, Kristian Hinnenthal, Andréa W. Richa, Christian Scheideler (2019). Computing by Programmable Particles. In: *Distributed Computing by Mobile Entities: Current Research in Moving and Computing*, pages 615–681. https://doi.org/10.1007/978-3-030-11072-7_22. [2] Robert Gmyr, Kristian Hinnenthal, Irina Kostitsyna, Fabian Kuhn, Dorian Rudolph, Christian Scheideler, Thim Strothmann (2018). Forming Tile Shapes with Simple Robots. In: *DNA Computing and Molecular Programming, 24th International Conference (DNA 24)*, pages 122–138. https://doi.org/10.1007/978-3-030-00030-1_8.

近期下载者

相关文件


收藏者