Scientific
visualization,
furiously fast.
FURY is a free, open source Python library for 3D scientific visualization and animation, built on the GPU through pygfx and WebGPU. NumPy arrays in, real-time renders out.
from fury.actor import sphere
from fury.window import show
rng = np.random.default_rng()
centers = rng.uniform(-50, 50, size=(1000, 3))
colors = rng.uniform(0, 1, size=(1000, 3))
actor = sphere(centers, colors=colors, radii=1.5)
show(actors=[actor])
FURY in Action
Browse all examples →Shaders
Shaders are simple programs that describe the traits of either a vertex or a pixel. Vertex shaders describe the attributes (position, texture coordinates, colors, etc.) of a vertex, while pixel shaders describe the traits (color, z-depth and alpha value) of a pixel.
Physically based rendering
Physically based rendering (PBR) is a computer graphics approach that seeks to render images in a way that models the flow of light in the real world. Many PBR pipelines aim to achieve photorealism. This video demonstrates Anisotropic specular reflection in FURY.
Large networks
A large network can be visualized by presenting its interesting parts preferably combined with one or several 'maps' in a multiview display. The main view displays a selected part in details, while the 'maps' provide the user with information about the position of the part inside the network.
Real-time simulation
This entire flight simulator — procedural terrain, a composite aircraft, flight physics, and a chase camera — is roughly 600 lines of Python, built entirely from FURY primitives and running in a real-time event loop. Read the tutorial →
Across the sciences
The same scene graph handles whatever your field throws at it. Pick a domain for a sample render.
Engineering
Robot-arm kinematics, assemblies and simulation output, animated as scene graphs.
Start from a working example
Every entry is a runnable script from the gallery, not pseudocode.
A complete first scene
Colored spheres on screen in ten lines of Python.
Tractography streamlines
A streamline bundle filtered through a region-of-interest mask.
Vector fields
Diverging fields as arrows, lines and cross-section slices.
Volume slicing
Move through 3D image volumes plane by plane.
Skybox environments
Wrap a scene in a cube-map backdrop.
Spherical harmonics
Glyph fields for orientation distribution functions.
Built-in UI
Sliders, panels and buttons rendered inside the scene.
Qt integration
Embed a FURY canvas inside a PySide6 desktop app.
Contour surfaces
Extract and visualize 3D volume surfaces as meshes.
One command
from your
first render.
Python 3.10 or newer, on Linux, macOS or Windows.
The GPU comes through WebGPU, so there is no driver ceremony.
Built in the open
Contribute
FURY is BSD-licensed and developed publicly. Issues, pull requests and design discussions all happen on GitHub, and the project mentors students through Google Summer of Code every year.
fury-gl/fury on GitHub ↗Talk to the team
The maintainers and the GSoC crowd hang out on Discord. Questions about your first scene or your thousandth get answered there, and longer threads live on the mailing list.
Join the Discord server ↗Cite FURY
If FURY supports your research, cite the JOSS paper so the work that funds it stays visible.
Compatibility & support
Plays well with your 3D toolchain
The wider 3D ecosystem FURY users pair it with, from DCC suites to game engines.







Supported by
Development is backed by Indiana University and Google Summer of Code.


