Smplrspace changelog
The definitive source of product updates on our lean digital twins
Search releases
1 June 2024

πŸ’… Improvements

  • Numeric color scales now have an option to treat zero as missing data. More details in the docs.

  • We've improved the sample space for future accounts so that it works better with the furniture in 2D mode.

  • Report stat groups can now have their own title.

  • The reports leaderboard component now support both top and bottom sections.

  • We've improved the cross-tables alignment in the level explorer report template.

βš™οΈ Groundwork

  • Usage metering has been updated according to the new pricing.


Bug fixes
24 May 2024

πŸ› Bug fixes

  • We've fixed onClick handlers for mobile viewers.


Bug fixes
23 May 2024

πŸ› Bug fixes

  • We've fixed the onDrag and onDrop handlers on data layers, which stopped working after yesterday's release.

  • We've improved the reliability and consistency of hover and click states on data layers.


22 May 2024
We're now enforcing clientToken match for all requests, finalizing an upgrade to the security of your data.

πŸŽ‰ New features

  • We've started work to support furniture in 2d mode, at last πŸŽ‰! This has been a highly requested feature for a while and we're happy to put up the first wall, so to speak. Currently supported: tables of all shapes, chairs, desks of all configurations, shelves, and cubes. Your existing furniture data layers are 100% compatible with the 2D mode out of the box.

  • The first (alpha) version of our map viewer built on top of Mapbox is out and available through smplr.js. Render your geo-referenced buildings on a 3D map in 15 lines of code, including worldwide 3D cities created from OpenStreetMap data. Welcome to the new era of Smplrspace πŸŒ†. Check out the docs and contact us to try it.

  • We've added a QueryClient API to retrieve the automatic ground of levels programmatically. See the docs.

  • You can now extract all floor plates in a single click in the mapper, using that new API πŸ‘†. Just create a polygon group and click the "..." button to try it.

  • We've added APIs to QueryClient to programmatically extract doors (docs) and windows (docs) with all their details from the space.

  • We've added automated doors and windows extraction in the mapper, using these new APIs πŸ‘†. Just create a polyline group and click the "..." button to try it.

  • The level explorer template for reports now supports a slider filter when using numeric statistics.

  • You can now choose to hide the level picker via smplr.js. See hideLevelPicker in the docs.

πŸ’… Improvements

  • The onClick, onHover, and onHoverOut handlers now include the triggering Javascript event as argument, to allow for custom integrations. More details in the docs.

  • We've improved the detection of features not supported by browsers, and their associated error messages.

πŸ› Bug fixes

  • We've fixed an edge case where the full preview button would fail if the preview was not already opened.

  • We've fixed an issue where the getElementPositionOnScreen function could return a slightly offset position in 2d mode.

  • We've fixed an issue where the hover and click handlers of data layers could be called unintentionally while moving the camera.


18 April 2024

This version adds a number of new capabilities to the reporting feature that was first introduced in v2.10.0.

🎊 New reports features

  • You can now aggregate data from multiple sources, making it possible to configure all-in-one management reports.

  • We've added new statistic options: average, weighted sum, and weighted average.

  • We've added a new template displaying a list of stats.

  • The level explorer template now support multiple stats with in-page selection of the active stat by users.

  • We've added support for on-the-fly stat selection for the data visualization in reports.

  • We now support multiple data layers on a single report page.

  • It is now possible to use point data layers.

  • We've added support for numerical color scales in the reports.

  • It is now possible to map multiple assets to a single spreadsheet line.

πŸ’« Improvements to reports

  • We've updated the summary cards to support a large number of categories.

  • We've reworked the navigation between pages to allow for more complex reports.

  • Each page of a report now has its own url, making it easier to share a specific data view.

  • We've improved the loading state of report pages, removing the flash of white between page.

πŸŽ‰ Other new features

  • startViewer now returns a Promise, letting you react when the scene is ready without providing an onReady callback method. This is to adapt to different types of environments (e.g. Observable notebooks), or coding preferences.

  • You can now programmatically switch between 2D and 3D modes without restarting the viewer with the new setMode API. See the docs.

  • We've added an API to remove all data layers at once, a reset button of sorts! See the docs.

  • It is now possible to auto-rotate the viewer for display purpose. More details in the docs.

  • You can now programmatically compute the ground footprint of a piece of furniture. Ideal for alternative visualizations, or to compute the area taken by specific furniture classes. See the docs.

  • New keyboard shortcut for you power users! Shift+D will duplicate doors, windows, and furniture pieces in the editor.

  • We're added automatic classification of facade walls, to make it easier to add custom models as facade and in preparation for experimental performance features relying on facade-only rendering for hidden floors.

  • An experimental performance mode is in private alpha. We're looking at bringing the viewer to the next level of rendering performance, with a focus on not-necessarily large, but dense & complex multi-storey buildings.

πŸ’… Other improvements

  • We've improved the rendering of point data layers in 2D mode.

  • We're now making sure that data layers are fully managed in 2D mode.

  • We've improved consistency of the loading state of the viewer and you can now provide an optional message to be displayed when the space is loaded but still rendering. See the docs.

  • We've added statistics about your space in the right pane of the editor below the publish button. This gives you (and us) some useful information to debug performance related issues.

πŸ› Bug fixes

  • We've fixed the free rotation of furniture while pressing the shift key, in the editor.

  • We've fixed an issue where reports that had no data for a given space where also displayed in the list.

  • We've improved the consistency of the timing when the scene ready event is emitted. In some cases, it was emitted too early, it's now all good.

  • We've fixed an issue where the onClick event on furniture data layers would sometimes be triggered one too many times.

πŸ“š Documentation

  • You can now Ctrl+K to activate the search in the docs.


22 March 2024

No new feature today, but this release is a big one as it significantly improves the behavior of our viewer and data layers in 2D mode, as well as for spaces that span a very large area.

See below a before/after of an extreme case β€” a space spanning 700m by 460m 🀯.

πŸ’… Improvements

  • We've completely reworked the 2D mode of the viewer and it now renders spaces of all sizes without flickering.

  • Data layers in 2D mode are now fully managed in height/elevation, to make it much simpler to use and predictable in rendering.

  • Data layers in 3D mode are now automatically positioned in height/elevation if their value is so low that it would be hidden under the ground.

  • We've made sure that walls are always rendered higher than grounds and ground level data layers, making car park data viz (e.g.) much easier to achieve and predictable across space sizes. It's a trade-off with rendering of extremely large spaces, but will make the behavior more predictable for 95% of the users.

  • We've improved the default behavior of ground types so it's simpler to overlap different grounds, but still provide full control in cases where it's needed.

  • We've improved the rendering of structural walls so their size match exactly the size of non-structural walls they overlap.

  • We've improved the performance when using subspace rendering, by not rendering non included levels at all. They used to be hidden, now they're gone πŸ™ˆ.

  • You can now pass color values with their CSS names, like 'cyan', in the data layer color options.

πŸ› Bug fixes

  • We've fixed an issue that could sometimes lead to an unintended "flash" effect when clicking the info link in the viewer.

  • We've fixed an issue where stairs were missing in 2D mode.

  • We've fixed the handling of ranges of levels to include using ~ in shared space links.

  • We've fixed an issue with 2d rendering with thick grounds.

  • We've fixed a bug that would crash the viewer if it was passed elements that don't have a position or coordinates. They're now ignored.


14 March 2024

πŸŽ‰ New features

  • Our first step towards subspace rendering is live. You can now specify which levels to include in the viewer. This is available through smplr.js, either when you start the viewer (see includeLevels in the docs), or dynamically after the viewer has started (docs). It's also possible to use this feature on shared space links by appending the (zero-based) level indices to include to url: /0 for the first level only, /0-3 for the first and 4th level, /0~3 for the first to the 4th level, or any combination of these.

  • We have added the possibility to update the viewer's renderOptions dynamically, letting you adapt the way the space is rendered based on the data visualization needs you have. This lets you move from a data only view to a normal view instantly without restarting the viewer. See the docs for details.

  • You can now disable grounds from the rendering (see grounds.render in the docs).

  • You can now pre-navigate the viewer to a certain level when you start it (see topShownLevel in the docs).

  • We've added synchronous equivalents for each asynchronous function in QueryClient. This relies on our caching and requires pre-caching the space data, but make it much easier to implement batch compute queries by mapping arrays, or similar. See the docs for details.


Bug fixes
7 March 2024

πŸ› Bug fixes

  • We've fixed the point layer shape being cube instead of sphere as default.

  • We’ve fixed an issue in the numeric scale where the input was not properly clamped to the scale’s domain in case a decimal gamma value was set. Highly specific? yes. Solved? yes.


6 March 2024

This is another big release on the tail of v2.14.0. A number of you have already got a preview of our heat maps capabilities and have asked (quite impatiently πŸ˜‰) when the official API would ship. The answer is today ! And it's not coming alone, but alongside our new and shiny color scales, to help you bring best practices from color theory into your data visualizations.

πŸŽ‰ New features

  • We've added the highly awaited heat map data layer API. You can now render heat maps in just a few lines of code. The grid is automatically generated and configurable. It is also masked automatically by your space's footprint, but you can provide a custom polygon mask to use instead. Interpolation is done out of the box, with a smart confidence range computed based on the relative location of your data points, but you can also set the confidence range that makes most sense to your use-case. Heat maps come in a few configuration styles: spheres, grid, and bar-chart, with potentially more to come based on users feedback. Check out the docs for the API reference and a live demo with code, or play around with the options without code in our timeheat demo.

  • The point data layer is getting better, with shapes! You can now choose which shape you want each point to be rendered as. We're starting with spheres (the historically single option), and cubes of any size. More shapes will be added based on demand. Details in the docs.

  • We've added a Color utility class to smplr.js, which lets you easily create gorgeous looking color scales that are optimized for spatial data visualization. It also provides a legend component for react or vanilla javascript, and utility methods to convert css colors into the approximate color you visually see in a Smplrspace viewer when you use them. More details in the docs. Tip: that "A little context" section is a great read. Or go play with it in our colors mini-site.

πŸ’… Improvements

  • We've added a hello world example to the doc in which smplr.js is loaded from CDN.


Bug fixes
28 February 2024

πŸ› Bug fixes

  • We've fixed a bug where CSV data imported in the mapper with an empty smplrUuid value would result in assets that can't be mapped.


Next page