Skip to main content
netbox spatial lens

Your estate through one lens: world, floor and rack, drawn from NetBox and recoloured by what you need to see

world • site • floor • rack

License NetBox compatibility Python version

Documentation | Compatibility | Configuration | Permissions | Extending | Changelog

A lens does two things to what you point it at: it brings one place into focus, and it filters what you see there. That is what this is for a network. The world map, the floor plan and the rack in 3D are the same estate at three focal lengths, one click apart, and every one of them recolours on demand by whatever you came to find out.

A NetBox plugin. NetBox knows a rack's height, footprint, power feeds and cooling capability. It does not know where the rack stands in the room, and it will not colour a room by any of those values. This draws the room and colours it.

What it does | Getting started | Where the ideas come from | Documentation

What it does

World → site → floor → rack, one click each way. Every drawing has a stat strip above it and a legend that filters it.

The world map

Sites on a globe, sized by rack count and coloured by group, status, tenant or region, with the circuits between them coloured by provider. The two legends and the Sites and Circuits finders narrow the map. It needs WebGL and MapLibre, which loads from a CDN by default or from your own copy; tiles are optional.

A globe with sites in North America and Europe, circuits drawn as great circles across the Atlantic, and two legends naming the site groups and the circuit providers

The site

Every room in the site as a small plan with its own figures, on a tab of NetBox's site page.

The MDF site drawn as four rooms side by side, each with its rack, device, space and power figures above a thumbnail of its real floor plan

The floor

The room in 3D, every rack a cabinet at its real position, rotation and height, coloured by power, cooling, space or role, with the reading rising up its doors and the cable runs arcing over the tops. Look from the top, at three quarters or from the side, and switch from Cabinets to Devices to see every rack open with its real devices and their front and rear images. Switch to 2D for the plan over a scanned drawing, with zoom. Both views share a sortable rack table. Find racks by name or asset tag, narrow them by tag or custom field, and place them in the layout editor.

A 20.7 by 13.2 metre data hall of 80 cabinets in eight rows of ten, two blocks of four rows either side of a central aisle, their roofs and doors coloured by how full they are, the leaf to spine uplinks arcing from every rack to the two spines in row A, and the hover card of rack G04

The same hall of 80 racks in the Devices view: every cabinet open with its real devices, roofs coloured by rack role, and the hover card of one switch naming its rack, type and unit

The hall in the Devices view with "c" in the find box: the ten racks of row C stand out with their devices and every other rack fades, and the hover card of one router in C08

The rack

The cabinet in 3D, with the real front and rear images of each device type, every cable run through the cable managers, and reserved and free units. Turn it, move it and zoom, or jump to the front, the rear or the side. Devices are coloured by role, status, tenant, cabling or power. Find devices by name or asset tag, and narrow them by tag or custom field. It needs WebGL and Three.js, which loads from a CDN by default or from your own copy.

Rack C04, a 48U cabinet of 49 devices seen from behind and to the side, the switches wearing their real rear panels, the data cables dressed up one cable manager and the power leads up the other, and the two uplinks leaving through the roof, beside the port allocation and cabling panels

On every level

In the rack, click a cable, or a row of the cabling list, to trace it end to end, through patch panels and out to a provider, or along a power chain from socket to feed. On the floor, a cable leaving the room opens the cable, or the circuit it reaches.

Getting started

Install it like any NetBox plugin: pip install netbox-spatial-lens, add netbox_spatial_lens to PLUGINS, and migrate. It also works inside netbox-branching branches.

Your first floor

  1. Draw the room: Spatial Lens > Floors > Add. Give its width and depth, and bind it to a site (one room) or a location (several rooms).
  2. Place the racks: open the floor, choose Edit layout, then drag each rack from the list onto the plan and rotate it. Rack sizes come from NetBox.
  3. Look at it: colour by power, cooling, space or role, and click a rack to open it.

Optional: add a background plan, and set site coordinates for the world map.

For the development stack, the demo database, and the commands that populate it, see docs/development.md.

Where the ideas come from

  • net3d: the zoom-through navigation, cable tracing and power chains. Not its architecture, which is a standalone Node app reading the REST API from outside.
  • NetBox Labs Visual Explorer: the geometry model, one queryable row per placement. It has no overlays, which is our reason to exist.
  • netbox-floorplan-plugin: read as a one-shot importer. Its plan is a Fabric.js blob with no coordinate columns, so an overlay over it would be a JSON walk per rack.
  • netbox-demo-data: what everything is tested against.

Documentation

Compatibility Which NetBox versions each release supports
Configuration Every setting, and a site with no internet access
Extending Colouring from another plugin, filtering by custom fields, and the floor layout API
Modules What each module and script holds
Permissions What to grant, and what each page reads
Development The dev stack, the demo database, and the commands that fill it
Gotchas What NetBox and this stack do that is not obvious

Metadata

Release files for netbox-spatial-lens 0.4.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 netbox-spatial-lens 0.4.0
File Size Uploaded
netbox_spatial_lens-0.4.0.tar.gz 230.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-spatial-lens 0.4.0
File Interpreter ABI Platform
netbox_spatial_lens-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 508.7 kB

Release files / netbox_spatial_lens-0.4.0.tar.gz

Download URL netbox_spatial_lens-0.4.0.tar.gz
Size 230.8 kB
Tags Source
SHA-256 checksum
How to use checksums
69047d8b75a05954b1b469a08bebed911331f4a60c78d1c207b1ccaff3f72ee9
BLAKE2b-256 checksum
How to use checksums
a6e25571097f0805718eabfae7ba55eec6ac4d8d21487ddef22c12d3d8b8ea95
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 Sep 22, 2026.

Transparency log

Release files / netbox_spatial_lens-0.4.0-py3-none-any.whl

Download URL netbox_spatial_lens-0.4.0-py3-none-any.whl
Size 277.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2d9670cafb4c0a5ceb183a274b22158c1bd40037bcedccc62f6cc403dd8fefe
BLAKE2b-256 checksum
How to use checksums
6c2c95151e262842ba35a0b81dd378a728eb96301b608658e64b124279cc9e7d
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 Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

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