Smplrspace changelog
The definitive source of product updates on our lean digital twins
Search releases
Features
12 March 2026

🔐 Security

  • We've updated the QueryClient API so you only need to pass an organization ID when it cannot be inferred from a space, making the client simpler to use and tightening sensitive data exposure. Explore the changes in the docs.

  • We now support the creation of client tokens scoped to specific spaces or projects, giving you the tools to build fine-grain access control. This is ideal for multi-tenant deployments where client tokens shared with a specific tenant should restrict access to that tenant.

 

🧠 AI agents and LLMs

  • Our developer documentation now supports Markdown for Agents. AI agents and LLMs will automatically receive responses in markdown format, which is ideal for AI processing and leads to better results while minimizing token waste. Each response includes an x-markdown-tokens header indicating the estimated number of tokens in the markdown document — useful for calculating context window size or optimizing your AI workflows. This makes Smplrspace easier, faster, and cheaper to use for AI, and improves your developer experience.

 

🎉 New features

  • We've added a GeoPolyline data layer to the map viewer so you can render routes, boundaries and other line geometry directly on the map. More details in the docs.

  • The map-based entity manager now lets you create and manage GeoPolyline entities alongside your existing point and polygon layers.

  • Map-based reports now understand GeoPolyline layers, so you can analyze line-shaped data next to your existing point and polygon reports.

  • You can now select multiple elements in the editor at once — hold Shift or Ctrl/Cmd and click to build up a selection across walls, floors, roofs, openings, stairs, annotations, and equipment.

  • Elements can also be multi-selected from the components tree on the left panel — Ctrl/Cmd-click to toggle items, Shift-click to select a range.

  • When multiple elements of the same type are selected, the properties panel shows their shared settings and lets you edit them all at once — e.g. change wall height, floor style, opening dimensions, layers. It also includes bulk actions like copying elements to another level or deleting elements.

  • Right-clicking on a multi-selection opens a context menu that lets you perform actions on all selected items in one go.

  • The Equipment editor now has a right-click context menu as well, consistent with how the Layout editor's context menu works.

  • You can now draw new walls that inherit the options of the currently selected wall, which makes it easy to duplicate columns or repeat a specific wall configuration.

  • You can now switch between our default map style and a satellite view in the map viewer and map-based projects with a single toggle. See how to enable it in the docs.

  • QueryClient now includes a helper to compute the midpoint of a polyline, which simplifies placing labels or markers along long routes. See the docs.

  • QueryClient now exposes an endpoint that returns all levels of a space with indices, names and initials, making it straightforward to build custom level pickers. Learn more in the docs.

  • You can now set the default swing angle for doors in space defaults; new spaces start at 90° but you can tune this to match your standards.

 

💅 Improvements

  • We've aligned the selection color to be consistent between the layout and the equipment editor.

  • You can now define default layers for all feature types via space defaults in the editor, so new elements come in with the right layer configuration from the start.

  • Complex editor operations that bundle many low-level changes now show up as a single undo or redo step, which makes bulk actions much easier to reason about.

  • When several points overlap, dragging now prefers the feature you have selected, so edits feel more predictable.

 

🐛 Bug fixes

  • We've fixed a bug where tooltips on shell layers could flicker, so they now feel stable when you move your cursor.

  • We've fixed a rare crash in the 2D viewer caused by walls that are fully covered by openings.

  • We've fixed a conflict between the editor's F hotkey and the browser's Cmd/Ctrl+F shortcut so search behaves as expected.

  • We've fixed an issue where data layers sometimes failed to refresh when switching between 2D and 3D, so overlays now update reliably.

  • We've fixed a rendering issue where dense point layers could appear incorrectly at certain zoom levels on the map viewer.

  • We've fixed a bug that could leave the editor briefly unresponsive after closing a right-click menu.

Share

Features
19 February 2026

🔐 Security fixes

  • Calls to create spaces or change their status through the QueryClient now correctly enforce authorization, so only permitted users and integrations can perform these actions. 

🎉 New features

  • You can now toggle Mapbox 3D buildings on and off from the map viewer API, so you decide when to keep the map clean or highlight surrounding buildings. More details in the docs.

  • Polyline layers now support a mitered join mode that keeps line widths more consistent around corners, reducing stretching artifacts. See the docs.

💅 Improvements

  • You can now resize equipment from one side only by default, and hold Option on Mac or Ctrl on Windows to go back to the previous mirrored resize on both sides.

  • We've optimized the re-rendering cost of changing renderOptions.floorplan in the space viewer.

  • The space viewer now only renders the floor plan of the top visible level.

  • The equipment editor and the entity manager now share the same F hotkey to quickly show just the floor plan, like in the layout editor.

🐛 Bug fixes

  • When you switch reports in a map-based project, your space and level selection now stays intact instead of being cleared.

Share

Features
30 January 2026

🎉 New features

  • We've added new geometry helpers to the SDK.

    • doSegmentsIntersect lets you check for intersection between 2D line segments (docs).

    • isPolygonAInPolygonB lets you check whether a polygon is completely contained within another polygon (docs).

    • fitRectangleInPolygon finds the optimal position and rotation for a rectangle within a polygon (docs). This is useful for space planning, furniture placement, or to optimize the size of logos in leasing reports, among others.

    • getRectangleCorners computes the corners for a rectangle returned by fitRectangleInPolygon (docs).

  • In the entity manager, you can now drop an image into a room and have it auto-fit with one click, powered by the new fitRectangleInPolygon endpoint.

  • The poster data layer now supports placing images automatically to fit polygons using the new fitRectangleInPolygon API. Learn more in the docs.

  • The poster auto-fit feature is also available in reports.

  • Reports now support multiple data layers based on the same data source.

  • In the layout editor, you can now split a wall into two segments at a point. This makes it easier to trim parts of a wall or adjust wall properties independently on each side.

  • The map entity manager now has a search bar so you can quickly find specific places on the map.

  • You can now add tags when creating spaces programmatically and filter spaces by tag via the query client, making it easier to organize and retrieve the spaces you care about. Learn more in the docs.

💅 Improvements

  • Smart zoom now adapts to tall spaces by adjusting for building height, and the camera moves up and down automatically as you switch levels.

  • The space viewer now updates each data layer independently, so changes to one layer no longer force others to re-render, improving performance on complex scenes.

  • Equipment 3D models are now served from a dedicated custom domain, which simplifies CSP configuration in your app and improves caching so equipment loads faster.

Share

Features
14 January 2026

Welcome to 2026, and let's start the year with a first release ✨.

🎉 New features

  • You can now enable optional scroll protection in both viewers. When users scroll without holding cmd/ctrl, we prevent accidental zooms so you can implement cooperative gestures in scrollable layouts more easily. Learn more in the docs. And shout-out to our friends at Akenza for the inspiration ✌️.

  • Space JSON export is now available to all users: export from the space profile’s settings and re-import from the editor’s advanced tab.

  • We’ve upgraded the armchair, 2‑seater and 3‑seater sofas to parametric equipment that loads instantly, works in both 2D and 3D, and can be stretched to any length and configured to a precise seat count.

    • We’ve built an automation to upgrade existing spaces to the new parametric sofas—reach out at support@smplrspace.com if you’d like us to run it for you. 🤖

  • smplr.js now exposes a Utils namespace with helpers like SpaceSid and isSpaceSid, making it easier to validate and work with Smplrspace IDs in your own code. More details are available in the docs.

💅 Improvements

  • The space viewer now uses a dedicated default renderingMessage, making it clearer when a space is still rendering versus loading—especially in embedded and progressively rendered viewers.

🐛 Bug fixes

  • We’ve tightened up viewer loading states across the app so loading feedback is more consistent.

  • We’ve fixed an issue where some map-based projects could open at the location of the previously opened project instead of the current one.

  • We've fixed an issue where the furniture data layer sometimes failed to initialize when using the default color.

  • We’ve resolved a rare issue where hover interactions on furniture stopped working after switching the viewer from 2D to 3D.

  • We’ve improved the loader logic for progressive rendering in the space viewer, so loading messages behave more reliably.

  • We’ve fixed an issue where the set of included levels could reset unexpectedly when toggling between 2D and 3D modes.

Share

Features
30 December 2025

This is our final release for 2025 ✨, and it's a robust one, featuring the addition of multi-space reports. These reports allow you to view data for all spaces on a single screen, enabling comprehensive campus-level reporting. This is a foundational step toward our vision of portfolio-level reporting. 2026 promises to be exciting 🙌. 

🎉 New features

  • Bring data from multiple spaces into a single campus report with aggregated stats and consolidated search—ideal for office parks, universities, and other nearby buildings on the map.

  • Use the new automatic space filter in campus reports to see all buildings at once, then quickly narrow down to a single building when you need more detail.

  • Add an optional search box to the map viewer so users can jump to places using addresses or GPS coordinates—just like any familiar web map. See search in the docs.

  • Use the new public, full-screen map page to explore Smplrspace’s building coverage, with a search box to quickly find any location. Try it here.

  • Use the new text-as-image micro-service to generate SVG logos from text, so you can fall back to a dynamic logo URL in icon or poster layers when brand assets are missing.

  • Use the new json helper in Handlebars tooltip templates to work more easily with structured data inside custom BI tooltips. Learn more in the docs.

💅 Improvements

  • Viewer loading states have been redesigned for both map and space viewers so they stay clear without blocking interaction, including better behavior for cached and progressively loaded spaces.

  • The viewer info icon now stays legible on dark backgrounds.

  • Organization invitations now stay valid for 90 days (up from 5) to better match longer enterprise onboarding cycles.

🐛 Bug fixes

  • Fixed an issue where the viewer on a space’s projects page could appear empty.

  • Fixed splitting entity groups by level in the entity manager when using the “split by level” option.

  • Fixed a level extraction error that could happen when a space included an empty level.

  • Fixed Google Sheets syncing so imports with unmapped furniture entities (empty furnitureId) no longer fail.

Share

Features
9 December 2025

🎉 New features

  • The map viewer is getting its biggest update yet! We're upgrading to the latest 3D base map from Mapbox, giving you improved 3D building data, modern lighting and map styling, curated landmarks manually modeled in 3D, trees, and more. We've applied our Smplrspace sauce on it too, to make it fit for our purpose: data visualization. Below is a before / after video for your enjoyment.

💅 Improvements

  • The icon or poster mode selector in the entity manager is now applied per group and persisted in the database.

  • We've added motion options on the map viewer's setCameraPlacement method. This change deprecates the previous options, so have a look at the docs and adapt your code. More details in the docs.

  • The map viewer now take a cameraPlacement option which is used as default camera placement when the viewer starts, as well as as placement when the user click the button to reset / recenter the view. See the docs.

🐛 Bug fixes

  • We've fixed some inconsistencies with the slider filter, where it would sometimes be displayed with a single value, or could be stale after a page change.

  • We've fixed an issue that broke setting preview images.

Share

Features
26 November 2025

🎉 New features

  • The Entity Manager now has Google Sheets synchronization built-in. This is ideal for quick editing, collaboration, and backups — all without importing and exporting nasty little CSV files 😉. It also lets enterprise users edit their inventory-type reports directly in Google Sheets and import the updated data to Smplrspace in one click. Head to the "..." menu in the Entity Manager to try it out.

  • You can now manually edit the individual coordinates of points and images in the entity manager.

  • The map viewer now supports the point data layer, which takes points compatible with the space viewer's point data layer and renders them on the map. Both layers are fully API compatible, except for alpha which is not supported on the map. Details in the docs.

  • We've improved the type of the diameter option in the space viewer's point data layer. See the docs.

  • The reports now support the new poster data layers.

  • The reports now support icon data layers.

  • Data visualization in reports now support data driven numerical and string parameters.

💅 Improvements

  • We've improved state management so your filter values are maintained when you change the active space in a report.

  • We've added select all / clear all buttons to the category filter, to make it easier to isolate specific items versus show it all.

  • We've improved the layout of the level explorer and entity records report templates to make spaces for longer label.

  • Posters now have shadows, so they feel a little less like vampires 🧛‍♂️.

🐛 Bug fixes

  • We have fixed the hover issues that happened on the map viewer's data layer. You can now reliably hover and click data layer elements on the map.

  • We've fixed some inconsistencies with the behavior of slider filters.

Share

Features
12 November 2025

🎉 New features

  • We've added the poster data layer, which lets you render images that are fixed in the space the way a poster, sticker, or panel would be. And these are of course data driven and interactive. Learn more in the docs.

  • We've added new sizing options to the icon data layer, bringing it on par with the poster data layer. Icons can be sized at the element or at the layer level, and by width or height preserving image ratio, or both overriding image ratio. Details in the docs.

  • Image based layers like posters and icons can now be managed in the entity manager. We've created a special mode dedicated to images, that lets you load images from any url, size them, and position them in 3D.

💅 Improvements

  • The size of the image for icon data layers is now automatically detected after loading and applied. So it's simpler to use and makes icon and poster layers interchangeable.

  • The icon data layer "icon" parameter has been replaced by "image" to make it interchangeable with the poster layer. See the docs.

🐛 Bug fixes

  • We've fixed an issue with the range sliders not taking the minimum value changes into account.

Share

Bug fixes
5 November 2025

🐛 Bug fixes

  • We've fixed an issue that sometimes crashed the entity manager when editing a polygon.

  • We've fixed a bug where the collapsible levels in reports wouldn't expand under specific circumstances.

  • We've fixed an issue where unwanted scrollbars could appear in the reports for some users.

Share

Announcements
31 October 2025

This version is our first Enterprise-focused release, with Smplrspace Projects becoming the center of the experience for Enterprise users. Below is a breakdown of everything that's new, improved, and fixed.

🎉 New features

  • We now categorize organization types and customize the user experience based on specific needs. For Enterprise users, the app now defaults the experience around Projects, making it simpler to find just the reports you're looking for.

  • We have moved reports under the new Projects feature, and setup every report user with the corresponding projects. The change will allow us to release multi-spaces (portfolio, campuses, ...) reports very soon. Stay tuned 😉.

  • Moving reports into projects allowed us to build navigation between reports and spaces in 1 to 2 clicks, making Smplrspace reports better suited for business intelligence workloads.

  • The space profile now includes a page listing the projects a space belongs to, allowing quick overview and access to the projects.

  • Projects are getting their own tags, helping you organize reports, walkthroughs, and portfolios to your heart's content.

  • The entity manager has a new power feature that lets you generate a point layer from an existing polygon layer, where each point is the computed center of the polygon. This is ideal to extract the center of all the rooms that you have mapped.

  • We've added a getMode endpoint to smplr.js, making it easy to know if the viewer is currently in 2D or 3D mode without tracking it manually. See the docs.

  • We've added endpoints to smplr.js to hide and show the level picker on the map. More details in the docs.

💅 Improvements

  • We've added ID matching to the spaces search.

  • We've improved projects search to include ID, notes, and tags.

  • Projects now come with curated but randomly selected image placeholders that celebrate city scapes from around the world. Take off with us 🚁.

  • You can now re-order spaces in a project to suit your preference.

  • We've improved pages navigation within a report.

  • Reports now support using a dynamic template for the labels of the levels explorer and entity records. This lets users get both unit ID and tenant name in rent rolls for example.

  • We have improved caching of report data and walkthrough photos, so it only loads once and gets instantly reused as you navigate through spaces and pages.

  • The Map's hash parameter now support using a custom hash key to avoid conflicts with other URL hash parameters. This is ideal for embedded usage of the map viewer.

  • We now automatically clear the map's hash when the map is removed, leaving your app in a more consistent URL state.

  • We're now rounding coordinates of your spaces, reducing their disk size by roughly 10% for large spaces. This means faster loading for all ⚡.

  • The disableElevationCorrection option on data layers can now be used in 2D to override the automated layering. You should also note that it's unlikely you still need this option in 3D mode as we've improved the rendering of thin gaps on large spaces in the previous version.

  • As we're working with more and more campus size projects, we now ignore external grounds when computing the digitized area. This will keep the digitized area closer to the gross built-up area.

  • The map viewer level picker is now hidden in reports when a single level is filtered.

  • We've improved the main navigation bar for mobile users.

🐛 Bug fixes

  • We've updated the configuration of our image delivery pipeline to ensure that images we host can be loaded in embedded experiences.

  • We've fixed an issue where modals used in the embed editor would not be displayed properly (e.g. to rename levels).

  • We've added error handling on our room detection algorithm to avoid app crashes if a space was too complex for the algorithm to succeed.

  • We've fixed the automatic centering on the pinned entity in the entity records report template. In other words, the viewer will now follow your actions in the maintenance records reports.

  • We've fixed some missing styles on the embed preview screen.

  • We've fixed the height of the building pins in the map viewer.

  • The camera location doesn't reset anymore when you reload a map page on a specific location (as it is set in the url). This makes specific views in projects and reports easier to share.

  • We have fixed compatibility issues with TizenOS TVs.

Share

Next page