Skip to main content

MagBotSim (Magnetic Robotics Simulation)

MagBotSim is a library for physics-based simulation environments for motion planning and object manipulation in the field of Magnetic Robotics. The main component of every environment is a magnetic levitation (MagLev) system, which consists of two basic components, as shown in the Figure above. Firstly, dynamically actuated shuttles as passive motor modules, so-called movers, consist of a housing and a complex permanent magnet structure based on Halbach arrays on the lower side of the mover. Secondly, static motor modules, so-called tiles, are the active component of the drive system. As shown in the Figure above, the tiles enable the coil-induced emission of electromagnetic fields (yellow) that interact with the mover's field (blue). During operation, the movers hover above the tiles and can be controlled in six dimensions by adjusting the currents in the coils contained in the tiles.

MagBotSim is designed to match real-world applications, so that control policies can be transferred to real MagLev systems without further training or calibration. Since the library is based on the MuJoCo physics engine, MagBotSim enables users to perform object manipulation tasks with MagLev systems. In addition, as reinforcement learning (RL) is frequently used in multi-agent path finding and object manipulation, MagBotSim includes basic environments with single-agent (Gymnasium) and multi-agent (PettingZoo Parallel API) RL APIs that can serve as starting points for developing new research-specific environments. However, MagBotSim can also be used without RL and provides several utilities, such as impedance control for the movers.

Installation

The MagBotSim package can be installed via PIP:

pip install magbotsim

To install optional dependencies, to build the documentation, or to run the tests, use:

pip install magbotsim[docs, tests]

Note: Depending on your shell (e.g. when using Zsh), you may need to use additional quotation marks:

pip install "magbotsim[docs, tests]"

Documentation

The documentation is available at: https://ubi-coro.github.io/MagBotSim/

License

MagBotSim is published under the GNU General Public License v3.0.

Reinforcement Learning Example

The following example shows how to use a trained policy with an environment that follows the Gymnasium API:

import gymnasium as gym
import magbotsim

gym.register_envs(magbotsim)

mover_params = {
    'shape': 'mesh',
    'mesh': {'mover_stl_path': 'beckhoff_apm4220_mover', 'bumper_stl_path': 'beckhoff_apm4220_bumper'},
    'mass': 0.639 - 0.034,
    'bumper_mass': 0.034,
}
env_kwargs = {
    'mover_params': mover_params,
    'initial_mover_zpos': 0.002,
    'render_mode': 'human',
    'render_every_cycle': True,
}

env = gym.make("StateBasedPushTEnv-v0", **env_kwargs)
observation, info = env.reset(seed=42)

for _ in range(0,100):
    terminated, truncated = False, False
    while not terminated and not truncated:
        action = env.action_space.sample()  # use custom policy instead
        observation, reward, terminated, truncated, info = env.step(action)

    observation, info = env.reset()
env.close()

Paper & Citation

If you use MagBotSim for your research, please cite our paper (https://arxiv.org/abs/2511.16158) as follows:

@aricle{bergmann_magbotsim_2025,
    title = {{MagBotSim}: {Physics}-{Based} {Simulation} and {Reinforcement} {Learning} {Environments} for {Magnetic} {Robotics}},
    author = {Bergmann, Lara and Grothues, Cedric and Neumann, Klaus},
    journal = {arXiv preprint arXiv:2511.16158},
    year = {2025},
    doi = {10.48550/ARXIV.2511.16158}
}

Maintainer

MagBotSim is currently maintained by Lara Bergmann (@lbergmann1).

Metadata

Release files for magbotsim 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for magbotsim 1.3.0
File Size Uploaded
magbotsim-1.3.0.tar.gz 9.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for magbotsim 1.3.0
File Interpreter ABI Platform
magbotsim-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.0 MB

Release files / magbotsim-1.3.0.tar.gz

Download URL magbotsim-1.3.0.tar.gz
Size 9.4 MB
Tags Source
SHA-256 checksum
How to use checksums
6ad9f71c3cfb8f87bb8617b88f944fd8fb579b21e3a7255d80c83079d2d62cc5
BLAKE2b-256 checksum
How to use checksums
6b30a0b18d08872aae491cfad125c4d933479adab35a8f6d583ec05b26b77fa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / magbotsim-1.3.0-py3-none-any.whl

Download URL magbotsim-1.3.0-py3-none-any.whl
Size 9.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f4aca339a4fb473e7a22c1623ab22e31c00a730d820395439c0825f5cd5a29d9
BLAKE2b-256 checksum
How to use checksums
5202d5aad4de44bf592a051cc332c199b7339c066a178ee224122faa614dcef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page