Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
Instrument · v3.2.2

The indoor GIS, inside QGIS.

A corpus tree over every building, floor and arrangement; a detail table under it; and write-through authoring of rooms, walls, furniture, sensors and printed markers straight into the IndoorGML schema. Add one repository URL and the Plugin Manager does the rest — no downloads, no ZIP files, and no account anywhere.

https://monad.dubec.dev/qgis/plugins.xml
Room Room Corridor Obstacle Occupiable Door Wall Tx Rx Marker
Every colour here is the value the plugin writes into QGIS. Rooms are washes and the floor envelope has no fill, because a floor plan is a stack and an opaque layer hides the one beneath it. Schematic, not a survey — the geometry is drawn to show the layers.

What it does

CapabilityWhat it replaces
One corpus tree. Building → floor → arrangement, all of it visible, type to narrow. Eight dependent dropdowns, where an empty one could mean “nothing here”, “not loaded” or “that view no longer exists”.
Load is a sync. A loaded layer is kept and re-scoped, a missing one added, a stale one removed. A second click that built a second complete stack of duplicate layers on top of the first.
Symbology that knows what the columns mean — furniture by class, sensors by role, doors above walls. QGIS's opaque random fill per layer, which hid 1126 furniture footprints under a floor envelope.
Your styling wins. The plugin fingerprints what it wrote and never overwrites what you changed. Re-styling on every load, and a preference pane to argue with about it.
Write-through authoring. Rooms, zones, walls, furniture, nodes and markers, edited on the canvas. Typing UUIDs and enum values into base tables, with nothing stopping you drawing into the wrong floor.
Native move, rotate and scale on furniture. The anchor follows the polygon's centroid; the stored 3-D surface follows both. A plan view that looked right while the ray-traced scene still had the chair where it used to be.
Forms generated from the live database — every closed vocabulary is a dropdown read at publish time. Typing obstacle from memory and finding out it was wrong when Postgres rejected the save.
A snap grid in centimetres on the drawn layers, so two chairs share an exact edge. A three-millimetre sliver between them that a crowd simulation routes an agent through.
A schema probe that names the command which fixes a stale database. A widget that quietly went empty.

Add the repository

  1. In QGIS, open Settings ▸ Plugins ▸ Settings.
  2. Under Plugin Repositories, press Add….
  3. Name it Monad Knowledge and paste https://monad.dubec.dev/qgis/plugins.xml as the URL.
  4. Leave Authentication empty. There is no token and nothing to configure.
  5. Open the All tab, search for Monad Knowledge, and install.

From here on a new version appears under Upgradeable whenever one is published. If you installed the plugin by hand before, uninstall that copy first — otherwise QGIS keeps it and never offers the managed one.

What is published

Version3.2.2
Packagemonad_knowledge_qgis.3.2.2.zip
Size85 kB
QGIS3.38 and later, Qt5 and Qt6
LicenceSee the repository

The direct link is there for a machine that cannot reach the Plugin Manager. Installing from it by hand works and costs you the updates, which is the whole reason the repository URL exists.

What it needs, and what it is not

The plugin is the surface, not the data. It talks to PostGIS directly, so it needs a saved PostgreSQL connection to the project database; the repository URL above gets you the plugin and nothing else. Every site in the corpus is translated to its own origin, so they stack at the same coordinates — you do not pan between buildings, you filter, and that is why the tree exists.

It writes through the server's own rules rather than around them. Room containment, geometry validation and duplicate-key rejection all live in database triggers, so the plugin cannot drift from the schema and neither can anything else that edits the same views.