How-to Guides
Problem-oriented
How-to Guides
Contents
- Preparation
Preliminary operations for using Alchemist: installation, setup
- Alchemist stand-alone
The recommended way to run the simulator and fetch all the required modules.
- Alchemist via Gradle
The recommended way to run the simulator and fetch all the required modules.
- Alchemist stand-alone
- Simulation
Guides on how to create simulation environments, configure node behaviour, and control the simulation details
- Create reusable variables
Define reusable pieces of information and compute upon them, prepare for the execution of simulation batches.
- Ensure repeatability
Control randomness, ensuring reproducibility and replicability of experiments.
- Cognitive Agents
Agents with realistic human behavior.
- Create a network
Define how nodes should be connected with each other.
- Create Layers
Define data layers that live in the environment
- Create rich environments
How to create complex environments (obstacles, and so on)
- Find paths indoors
How to navigate the environment, especially indoors.
- Maps and GPS traces
How to simulate using maps and GPS traces.
- Simulate indoor
How to create indoor environments based on planimetries.
- Simulate physical interactions among pedestrians
Physical interaction between nodes
- Find paths indoors
- Deploy Nodes
How to place nodes within Alchemist environments
- (Irregular) Grids
Deployment of nodes in (possibly irregular) grids.
- Nodes inside shapes
Deployment of nodes randomly inside arbitrary shapes.
- GPS Traces
Deployment of nodes on map-based environments using GPS data.
- Graphs
Deployment of nodes into arbitrary graphs.
- (Irregular) Grids
- Export data
Select which data the simulator should output, in which format, and where.
- Monitor and Control Simulations through GraphQL
Monitor and Control a Simulation through a set of GraphQL APIs.
- Monitoring Simulations through Custom Output Monitors
Create custom monitors to track simulation progression and interact with standard hooks.
- Program Nodes
How to define the behavior of nodes
- Move nodes on maps
How to move node around in geospatial environments.
- Node contents
Definition of the initial content of nodes.
- Move nodes on maps
- Smart cameras and drones
Simulate robots with a field of view.
- Create reusable variables
- Execution
Execution of multiple simulations, locally or in a distributed environment
- Customize the Swing GUI
Customize the look of your simulation.
- Define the termination criteria
Decide when the simulator should stop and consider the simulation concluded.
- MultiVeStA
How to integrate MultiVesta in Alchemist
- Parameter Sweeping with simulation batches
Execute multiple instances of a simulation with different parameters
- Simulation Engine Configuration
Available simulation engine configurations.
- Customize the Swing GUI
- Workarounds
Pre-concocted solutions to well-known issues
- Graphical Glitches in Swing
Known issues with Swing and OpenGL acceleration, especially with legacy AMD/ATi drivers.
- Memory leaks under Linux
Known issue of some Java Virtual Machine implementations when requested to use more than 64GB of RAM
- Graphical Glitches in Swing
- Experiment-specific extensions
One-time changes or additions to the simulator behavior
- Development
How to contribute to the project, hence achieving eternal glory
- Developer's guide
How to contribute
- Enrich the GraphQL API
How to create a new Query, Subscription, or Mutation using the GraphQL API
- Import Alchemist in an IDE
The recommended way to get and import the Alchemist project in an IDE
- Build and run the QA
How to locally build and test the simulator
- Developer's guide