Skip to main content

Magpylib Studio

Build and explore magpylib magnet designs visually — in VS Code, in a notebook, or in code. Name the numbers that matter, drag a slider, and the whole design follows, with the field computed exactly in milliseconds.

The Halbach example in VS Code: the objects and the steps that built them, the variables with their sliders, the 3D view and the script tab.

The Halbach example: two rings of ten magnets, each ring one magnet and one pattern. Drag n and both rings rebuild.

What you can do

  • Build a scene by hand. Add magnets, currents and sensors, group them, and move, turn and resize them in the 3D view.
  • Make it parametric. Name the numbers that matter — radius, gap, n — and write positions and sizes in terms of them. Drag a slider and everything follows. Values are SI unless you type a unit — 15 mm, 2 cm, 800 mT — or show the whole scene in mm and mT.
  • Pattern, don't copy. A ring of twenty magnets is one magnet and one "repeat around an axis" step, so changing the magnet changes them all.
  • See the field. Along a sensor path, as a map over a plane, or swept against a variable.
  • Undo anything. Every scene keeps the steps that built it; step back through them, or change an early one.
  • Switch to code and back. The script tab shows the scene as Python and applies your edits when you save. Export plain magpylib for anyone, or the scene as code to keep.
  • Let an AI assistant help. A coding agent can write the scene in code, read its field and sweep its variables, and hand it to you to open in the studio (see below).

Get started in VS Code

  1. Install the extension: search for Magpylib Studio in the Extensions view, or run code --install-extension magpylib.magpylib-studio-vscode.
  2. Open a folder, click the magpylib icon in the Activity Bar, and choose Load Example Scene.
  3. The first time, it offers to Install the Engine (the Python side) for you. Nothing to set up beforehand.

More in the extension's guide.

Use it in a notebook

The same 3D view, in Jupyter, marimo, VS Code notebooks or Colab:

pip install "magpylib-studio[widget]"
pip install "magpylib @ git+https://github.com/magpylib/magpylib@main"  # until magpylib's next release
import magpylib as magpy
from magpylib_studio.widget import SceneWidget

cube = magpy.magnet.Cuboid(polarization=(0, 0, 1), dimension=(0.01, 0.01, 0.01))
SceneWidget(cube)  # look around it; the pencil in its corner edits it
SceneWidget(cube, editable=True)  # or move, turn and resize it from the start

More in the notebook guide.

Write a scene in code

A scene is a plain magpylib function whose parameters are the variables:

from typing import Annotated

import magpylib as magpy
from magpylib_studio import Count, Length, duplicate_around, scene
from magpylib_studio.widget import SceneWidget


@scene
def ring(
    n: Annotated[int, Count(2, 60, slider=(4, 20))] = 10,
    radius: Annotated[float, Length(0.005, 0.08)] = 0.023,
):
    group = magpy.Collection(style_label="Ring")
    magnet = magpy.magnet.Cuboid(
        dimension=(0.01, 0.01, 0.01), polarization=(1, 0, 0), position=(radius, 0, 0)
    )
    group.add(magnet)
    duplicate_around(magnet, count=n, axis="z", spin=360 / n)
    return group


ring(n=12).getB((0, 0, 0))  # plain magpylib: real objects, a real field
ring.build().save(
    "ring.magpy.json"
)  # the document: n and radius are sliders in the studio
SceneWidget(ring, editable=True)  # the scene in a notebook, a slider per parameter

Called, it is magpylib. Built, it is the studio's document, every parameter a slider. More in the guide, and a complete example in examples/scene_demo.py.

Let a coding agent write it

The package carries an Agent Skill that teaches coding agents — Claude Code, Codex, Copilot and others — to write scenes as such functions, read the field and sweep a variable, and hand you the result to open in the studio. In a project that depends on magpylib-studio:

uvx library-skills  # pick magpylib-studio; for Claude Code, install into .claude/skills

Install the Python package only

pip install magpylib-studio

Python 3.11 or newer, and magpylib 5.2 or newer.

Learn more

If you want to… Read
use the VS Code extension the extension's guide
use the 3D view in a notebook docs/guide/notebook.md
write scenes in code the guide
know how it works inside docs/architecture.md
contribute CONTRIBUTING.md
see where the project is going docs/roadmap.md
see what was decided, and why docs/decisions.md

License

BSD-3-Clause, like the other packages built on magpylib. See LICENSE.

Metadata

Release files for magpylib-studio 0.5.1

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

Source distribution (sdist)

Source distribution for magpylib-studio 0.5.1
File Size Uploaded
magpylib_studio-0.5.1.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for magpylib-studio 0.5.1
File Interpreter ABI Platform
magpylib_studio-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / magpylib_studio-0.5.1.tar.gz

Download URL magpylib_studio-0.5.1.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
7739faa756c35a596c1ffbbf415ead70aae5794f8c3f5b4981585d0b63f85513
BLAKE2b-256 checksum
How to use checksums
dc8c432333fb14dbe5f6769173f8d287717c53844cba92349f03d346595d34f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / magpylib_studio-0.5.1-py3-none-any.whl

Download URL magpylib_studio-0.5.1-py3-none-any.whl
Size 500.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bf20c87ebd590d29ef515ca447a7743f1d7429eb8dec6510113257d7246de68
BLAKE2b-256 checksum
How to use checksums
6cd0815ad4c1f9f6745ce4bccdb881543a4802901ff520096d516601823d0c77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.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