Skip to content

Commit 33526b3

Browse files
committed
restructure
1 parent ad85d13 commit 33526b3

16 files changed

Lines changed: 331 additions & 160 deletions

File tree

content/floor-plan-editor.md

Lines changed: 2 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,7 @@
22
title: "Floor Plan Editor"
33
description: "Browser-based indoor mapping editor for creating and maintaining floor plans and IMDF-ready venue data."
44
draft: false
5+
layout: "product"
6+
product_key: "floor-plan-editor"
57
github_url: "https://github.com/Open-Location-Stack/floorplan-editor"
68
---
7-
8-
Floor Plan Editor is a browser-based map authoring tool for teams that need to create, adjust, and maintain indoor floor plans without building a custom editor from scratch.
9-
10-
It is part of Open Location Stack's mapping work and focuses on the practical steps required to turn a venue into usable map data: place the building correctly, define floors, draw geometry, align floor plan images, and keep the project editable over time.
11-
12-
## See it in action
13-
14-
![Animated demo of creating a room polygon in the Floor Plan Editor](/images/floor-plan-editor-add-room.gif)
15-
16-
*Draw rooms directly on the map canvas and build up floor geometry as structured vector data instead of painting on static bitmaps.*
17-
18-
![Animated demo of hiding a bitmap floor plan overlay while keeping vector geometry editable](/images/floor-plan-editor-show-hide-bitmap.gif)
19-
20-
*Use floor plan images as alignment aids, then hide them to inspect the actual editable map data underneath.*
21-
22-
## Why it matters
23-
24-
Most RTLS and indoor-location projects still treat map authoring as a side problem, which usually leads to ad hoc tooling, brittle import flows, and inconsistent map quality.
25-
26-
Floor Plan Editor reduces that friction by giving teams a reusable tool for indoor map creation and maintenance. Instead of rebuilding a one-off editor for every deployment, teams can start with a tool that already covers the core editing workflow.
27-
28-
Just as importantly, it shifts teams away from bitmap-first indoor mapping. Static image floor plans may be workable for small demos, but they do not scale well to industrial campuses, terminals, hospitals, and factories that span tens or hundreds of thousands of square meters. Vector map data stays crisp at every zoom level, is easier to validate and edit, and provides the structure needed for downstream applications instead of just a picture of a building.
29-
30-
## What it does today
31-
32-
- Interactive map editing on top of a live MapLibre-based map canvas.
33-
- Building and floor hierarchy with selection-aware editing panels.
34-
- Drawing and editing for points, lines, and polygons.
35-
- Adding and maintaining routable navigation paths for wayfinding-ready indoor maps.
36-
- Floor plan image overlays with corner-based alignment.
37-
- Local-first project storage in the browser with auto-save behavior.
38-
- Import and export workflows for GeoJSON and IMDF-oriented datasets.
39-
- Validation utilities to catch data issues earlier.
40-
- Address lookup and map recentering for faster setup.
41-
42-
## Under the hood
43-
44-
The current implementation is a React, Vite, and TypeScript application with a local-first browser architecture. Projects are stored in IndexedDB, map rendering is handled through MapLibre, and the editor includes IMDF-oriented import, export, and validation utilities so teams can move from raw floor plans toward cleaner interoperable venue data.
45-
46-
IMDF matters here because it is more than a drawing format. It is a GeoJSON-based information model with a venue hierarchy for sites, buildings, levels, units, openings, amenities, and related features. That structure gives indoor maps both geometry and meaning, which downstream systems need for search, display, zoning, routing, and operations.
47-
48-
The editor is also designed around navigable indoor space rather than static artwork. By supporting path creation as part of the authoring workflow, it helps teams build the navigation graph needed for wayfinding and point-to-point routing. Combined with vector geometry, that supports crisp rendering at any zoom level and applications that need to answer questions like how to get from one room, entrance, or work area to another.
49-
50-
## Built for indoor mapping standards and tools
51-
52-
If you are evaluating indoor mapping standards and downstream compatibility, these are useful starting points:
53-
54-
- [OGC Indoor Mapping Data Format (IMDF)](https://www.ogc.org/standards/imdf/) for the open standardization path.
55-
- [Microsoft Places floorplans and IMDF guidance](https://learn.microsoft.com/en-us/microsoft-365/places/setting-up-maps-in-places) for one example of where structured indoor maps are already expected.
56-
- [Apple IMDF specification resources](https://register.apple.com/resources/imdf/) because Apple introduced IMDF and still publishes the core format material.
57-
- [Apple MapKit indoor map documentation](https://developer.apple.com/documentation/mapkit/displaying-an-indoor-map) for a concrete product-facing integration angle.
58-
59-
## Product fit
60-
61-
Floor Plan Editor gives Open Location Stack a practical authoring front end for indoor spatial data. It is where floor plans become structured map assets that downstream renderers, validators, hubs, and applications can use, including the [Open Location Hub](/open-location-hub/).
62-
63-
For integrators, that means less time spent stitching together fragile map tooling. For product teams, it provides usable map data for workflows such as wayfinding, zoning, asset visualization, and operations.
64-
65-
## Get involved
66-
67-
Try it, stress it, file issues, and send pull requests if you want to help improve the editor.
68-
69-
[Learn about Open Location Hub](/open-location-hub/)
70-
71-
[View the repository on GitHub](https://github.com/Open-Location-Stack/floorplan-editor)

content/open-location-hub/_index.md

Lines changed: 2 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -2,102 +2,9 @@
22
title: "Open Location Hub"
33
description: "OpenAPI-first hub for location position and event exchange, connector-driven integration, and federated multi-site deployments."
44
draft: false
5+
layout: "product"
6+
product_key: "open-location-hub"
57
github_url: "https://github.com/Open-Location-Stack/open-location-hub"
68
aliases:
79
- /open-location-stack-hub/
810
---
9-
10-
Open Location Hub is an OpenAPI-first hub for interoperable location position and event exchange, built around the omlox hub specification.
11-
12-
It is the integration counterpart to Open Location Stack's mapping work. Once indoor spaces are modeled clearly, for example with the [Floor Plan Editor](/floor-plan-editor/), the hub handles live location data, events, auth, connectors, and system-to-system interoperability.
13-
14-
The project is moving toward a production-grade open source hub that teams can run, extend, adapt, and integrate without depending on vendor-specific middleware.
15-
16-
The software documentation for the current implementation is published at [Open Location Hub Docs](/open-location-hub/docs/). The REST contract is available as an interactive [API Reference](/open-location-hub/docs/api-reference/).
17-
18-
## Why teams use it
19-
20-
Open Location Hub gives vendors, integrators, and enterprise teams a hub they can run in customer projects, extend for partner integrations, and connect to existing systems.
21-
22-
Because the project is part of Open Location Stack's MIT-licensed codebase, it can be used, adapted, embedded, and white-labeled without licensing friction. That matters for teams that need a reusable hub without giving up their own service model, deployment approach, or customer-specific integration layer.
23-
24-
It cuts repeated work in hub APIs, auth, connectors, and deployment plumbing so teams can spend more time on delivery and product-specific behavior.
25-
26-
## Why it matters
27-
28-
Many RTLS deployments end up depending on proprietary hub behavior, custom APIs, or narrow integration contracts. That makes federation, migration, and cross-vendor interoperability harder than it should be.
29-
30-
Open Location Hub provides secure, testable, deployable hub infrastructure that can participate in real deployments.
31-
32-
It is cloud-native, horizontally scalable, and lightweight enough to run in very different environments. Teams can run it on premises close to local devices, in a regional cloud deployment, or as part of a larger multi-region setup that aggregates multiple sites and multiple continents. The federation work in the repository supports that progression from small local setups to larger distributed deployments.
33-
34-
## Connectors for existing deployments
35-
36-
Open Location Hub is not a rip-and-replace story. In many cases, the practical requirement is to work with the hubs and deployments that already exist across plants, warehouses, terminals, and production environments.
37-
38-
The hub supports integration with existing on-premise and cloud-based hubs such as Corriva Hub, Deephub, and other deployments already used for AGVs, fork lift trucks, and site-specific operational systems.
39-
40-
Instead of asking every customer to standardize on one vendor stack immediately, Open Location Hub can aggregate, normalize, and route location flows from multiple sources. That lets integrators and solution providers connect systems while preserving existing investments.
41-
42-
For location vendors and solution providers, contributed connectors can demonstrate compatibility and reduce one-off project work.
43-
44-
## What it includes today
45-
46-
- A normative OpenAPI contract for the hub API.
47-
- A Go server with strict handler interfaces and a low operational footprint.
48-
- Local runtime support for Postgres, Valkey, Mosquitto, and the application itself.
49-
- Authentication modes for OIDC, static JWTs, and hybrid setups.
50-
- RBAC and ownership-aware authorization building blocks.
51-
- Shared ingest and fan-out paths across REST, WebSocket, and MQTT.
52-
- An OMLOX RPC control plane for diagnostics and command routing.
53-
- Unit tests and an integration-test harness.
54-
- Engineering and architecture documentation for implementation planning.
55-
56-
## Technology overview
57-
58-
The hub is written in Go, which fits the deployment model well: low footprint, high performance, and simple operations. The current architecture separates durable storage, transient state, protocol surfaces, and shared hub logic so the same core behavior can support multiple transports and deployment shapes.
59-
60-
At the API layer, the repository already shows a broad protocol surface:
61-
62-
- REST for resource management, ingest, and standard hub APIs.
63-
- WebSocket support for the OMLOX wrapper protocol, subscriptions, and event fan-out.
64-
- MQTT integration for local device, adapter, and site-level integration patterns.
65-
- OMLOX RPC support for command and diagnostics flows such as `com.omlox.ping`, `com.omlox.identify`, and `com.omlox.core.xcmd`.
66-
67-
That protocol mix matters because real deployments rarely have just one integration style. Some systems need CRUD APIs, some need streaming updates, some need local MQTT-based device integration, and some need controlled command execution without exposing devices directly to every consuming application.
68-
69-
## Security and control plane
70-
71-
The authentication model is standards-based JWT bearer auth with support for `oidc`, `static`, and `hybrid` verification modes. In OIDC mode, the hub discovers provider metadata and JWKS automatically, caches verifier state, and validates standard JWT claims. The repository includes a Dex setup for development, and the same model works with production OIDC providers such as Keycloak and other enterprise identity systems.
72-
73-
Authorization is more than simple bearer validation. The hub already includes role-based and ownership-aware authorization, route-level permissions, RPC-specific method permissions, and separate WebSocket topic permissions. That makes it possible to use the hub as the policy boundary between user-facing applications and lower-level RTLS infrastructure.
74-
75-
This is especially important for OMLOX RPC. Instead of letting applications talk directly to MQTT-connected devices or vendor adapters, the hub can act as the control-plane front door: authenticate the caller, authorize the method, log the request, route it to the right handler, and aggregate responses if needed.
76-
77-
## Federated hubs for multinational operations
78-
79-
The federation planning in the repository is not an afterthought. It is aimed at topologies such as on-premises plant hubs feeding regional cloud hubs, or regional hubs feeding aggregate hubs for global visibility. The goal is to preserve standard OMLOX-facing interoperability while allowing deployments to grow into federated architectures that remain auditable, replay-aware, and resilient to partial outages.
80-
81-
Open Location Hub is designed to federate, aggregate, and partition data across sites, tenants, regions, and jurisdictions while remaining practical for smaller installations.
82-
83-
For multinational and internationally operating companies, that matters because real deployments are rarely uniform. Different countries, business units, and sites often use different location technologies, local integrators, and a combination of on-premise and cloud infrastructure. A federated hub model makes it easier to aggregate those location flows without forcing every site into the same architecture on day one.
84-
85-
In practical terms, Open Location Hub can sit above local hubs, beside existing vendor systems, or between regional and global aggregation layers while still respecting local operational constraints.
86-
87-
## Product fit
88-
89-
Open Location Hub is the integration hub in Open Location Stack. It can sit between location infrastructure, applications, enterprise systems, and federated site deployments while staying aligned with omlox-style interoperability.
90-
91-
For integrators and vendors, it covers core pieces of the stack such as API contracts, auth, event exchange, deployment scaffolding, connectors, and federation patterns. For customers, it reduces dependence on closed middleware and makes multi-technology deployments easier to integrate.
92-
93-
## Get involved
94-
95-
If you care about interoperable location infrastructure, try the code, review the API direction, open issues, and contribute pull requests.
96-
97-
[Browse the generated docs](/open-location-hub/docs/)
98-
99-
[Open the API reference](/open-location-hub/docs/api-reference/)
100-
101-
[Learn about Floor Plan Editor](/floor-plan-editor/)
102-
103-
[View the repository on GitHub](https://github.com/Open-Location-Stack/open-location-hub)
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
sections:
2+
- type: hero
3+
eyebrow: "Mapping product"
4+
title: "Floor Plan Editor"
5+
text: "Floor Plan Editor is a browser-based indoor mapping tool for teams that need to create, adjust, and maintain floor plans as structured venue data. It covers the practical editing workflow from map setup and floor geometry to overlays, validation, and export."
6+
actions:
7+
- label: "GitHub"
8+
href: "https://github.com/Open-Location-Stack/floorplan-editor"
9+
style: "primary"
10+
- label: "Open Location Hub"
11+
href: "/open-location-hub/"
12+
style: "secondary"
13+
aside:
14+
title: "Map authoring for real products"
15+
text: "The editor helps teams move away from bitmap-first indoor mapping. Instead of shipping floor plan pictures, you can maintain crisp vector geometry and venue structure that downstream applications can actually use."
16+
highlights:
17+
- "Browser-based authoring workflow"
18+
- "Vector geometry instead of bitmap-only maps"
19+
- "IMDF-oriented import, export, and validation"
20+
21+
- type: media-grid
22+
id: "see-it-in-action"
23+
section_class: "border-y border-line bg-neutral-50/50"
24+
title: "See it in action"
25+
intro: "The current editor already covers the core interaction loop for building indoor map data on top of a live map canvas."
26+
items:
27+
- src: "/images/floor-plan-editor-add-room.gif"
28+
alt: "Animated demo of creating a room polygon in the Floor Plan Editor"
29+
caption: "Draw rooms directly on the map canvas and build floor geometry as structured vector data."
30+
- src: "/images/floor-plan-editor-show-hide-bitmap.gif"
31+
alt: "Animated demo of hiding a bitmap floor plan overlay while keeping vector geometry editable"
32+
caption: "Use floor plan images for alignment, then hide them and inspect the actual editable map data underneath."
33+
34+
- type: card-grid
35+
id: "why-it-matters"
36+
title: "What it fixes"
37+
intro: "Indoor map authoring is still too often handled with ad hoc tools, bitmap exports, and brittle import steps. That leaves teams with maps that are hard to edit, hard to validate, and hard to reuse in real products."
38+
cards:
39+
- title: "One-off internal editors"
40+
description: "Use a reusable map authoring tool instead of building a custom editor for each deployment."
41+
- title: "Bitmap-first workflows"
42+
description: "Keep editable vector geometry and venue structure instead of treating indoor maps as static floor plan images."
43+
- title: "Large multi-floor sites"
44+
description: "Work with data that stays usable across factories, terminals, hospitals, and campuses with many floors and large footprints."
45+
46+
- type: card-grid
47+
id: "what-it-does"
48+
section_class: "border-y border-line bg-neutral-50/50"
49+
grid_class: "mt-10 grid gap-4 md:grid-cols-2 xl:grid-cols-3"
50+
title: "What it does today"
51+
intro: "The current implementation already covers the editing features teams need to turn a venue into usable indoor map data."
52+
cards:
53+
- title: "Interactive editing"
54+
description: "Edit map features on a live MapLibre canvas."
55+
- title: "Building and floor hierarchy"
56+
description: "Manage buildings and levels with selection-aware editing panels."
57+
- title: "Geometry tools"
58+
description: "Draw and edit points, lines, and polygons."
59+
- title: "Routing paths"
60+
description: "Maintain routable navigation paths for wayfinding-ready indoor maps."
61+
- title: "Floor plan overlays"
62+
description: "Align bitmap floor plan images with corner-based controls."
63+
- title: "Validation and exchange"
64+
description: "Use local-first storage plus import and export workflows for GeoJSON and IMDF-oriented datasets."
65+
66+
- type: feature-aside
67+
id: "structured-map-data"
68+
title: "Built around structured indoor map data"
69+
intro: "The editor is more than a drawing tool. It helps teams build venue data that downstream systems can search, render, route through, validate, and connect to live operational data."
70+
items:
71+
- title: "Local-first architecture"
72+
description: "The current implementation uses React, Vite, TypeScript, IndexedDB, and MapLibre so projects stay editable in the browser without heavy infrastructure."
73+
- title: "IMDF-oriented workflow"
74+
description: "IMDF brings venue hierarchy and semantics for sites, buildings, levels, units, openings, and amenities, not just coordinates and shapes."
75+
- title: "Navigation-aware authoring"
76+
description: "Path creation is part of the workflow, so teams can build the graph needed for wayfinding and point-to-point routing."
77+
- title: "Operationally useful output"
78+
description: "Structured venue data gives downstream renderers, validators, hubs, and applications a better base than static floor plan exports."
79+
aside:
80+
eyebrow: "Standards and fit"
81+
title: "Designed to work with the rest of the stack"
82+
text: "Floor Plan Editor turns indoor spaces into structured map assets that products such as Open Location Hub and downstream location applications can use."
83+
actions:
84+
- label: "Explore Open Location Hub"
85+
href: "/open-location-hub/"
86+
style: "primary"
87+
- label: "Read IMDF"
88+
href: "https://www.ogc.org/standards/imdf/"
89+
style: "secondary"
90+
91+
- type: cta
92+
id: "try-the-editor"
93+
title: "Inspect the editor"
94+
text: "Review the repository, try the current workflows, and use it as the mapping foundation for products that need structured indoor map data."
95+
action:
96+
label: "View on GitHub"
97+
href: "https://github.com/Open-Location-Stack/floorplan-editor"

0 commit comments

Comments
 (0)