The iModel.js Roadmap
This roadmap provides the big picture view of the development path for the iModel.js platform, and the relative priorities along the path.
We will use the following themes (that may be adjusted from time-to-time according to your input) to drive the evolution of iModel.js:
- Be the open platform for Infrastructure Digital Twins for federating BIM Models, GIS data, reality data, IT and OT into a single pane of glass for a seamless user experience.
- Be cloud provider, operating system, and browser neutral to the extent possible.
- Performance, scalability, security, and stability are our paramount concerns.
- Make developing with iModel.js as easy, productive, predictable, and profitable as possible.
- Adhere to open source standards and norms wherever possible.
- Build an ecosystem of innovation and enterprise.
We plan to release
iModel.js 3.0 in 2Q21. The projects listed below will comprise the priorities during the 3.0 development cycle. However it's likely that some may not be fully functional, or even beta-ready by the release deadline. In that case they will become candidates for the 4.0 cycle.
Volunteers for help on any or all of these projects are welcome. In particular, the iModel.js team always benefits from real-world use cases and data sets. If you would like to work together with us on any of these projects, particularly those that describe creating examples and templates for interfacing to external systems, please let us know.
- Support hardware anti-aliasing.
- Thematic display of point clouds and terrain.
- Support for compressed texture formats.
- Large-scale scene animations (e.g., pedestrian simulations, weather animations, disaster simulations).
- Support atmospheric rendering effects.
- Enhance publishing workflow to Bentley's Extension Service.
- Create examples and templates for building and publishing Extensions.
- Support for better testing in the Extension's Hosting App, i.e. iTwin Viewer, iTwin Design Review, PlantSight, etc.
- Expand base map support to include additional sources (AzureMaps, MapBox etc.) or solid color. Transparency of base map can be controlled independently of layers.
- Add support for display of raster map layers connected to live WMS, WMTS, AzureMaps, MapBox, or ArcGIS REST API servers. Map layer visibility and transparency can be controlled independently. Layers can be attached either as background below BIM geometry or overlays above BIM geometry.
- Provide api for hosting iModel.js applications directly within Microsoft Teams.
- Provide working examples and templates for interfacing between engineering content in iModels, enterprise systems, and realtime IOT sensors, cameras, controllers, devices, and processors.
- Create tools for augmenting data synchronized with bridges from engineering design tools with IOT-link elements.
- Enhance BIS schemas for common IOT patterns and query engines.
- Provide working examples and templates of agents deployed via Kubernetes.
- Perform operations on iModels that are triggered by relevant events from iModelHub.
- Create fully functional iTwin web viewing application platform, deployable on any cloud infrastructure. The Bentley iTwin Design Review product will be built from this application.
- Provide necessary infrastructure to host Extensions within any iTwin Viewer-based solution.
- Support visualization of time-based differencing of large scale point clouds.
- Implement a grid of linear transformations for large reality data.
- Improve server-side extraction of tags from photos and panoramas.
- Incorporate geophoto package into an Extension loadable from any iTwin Viewer application.
- Provide a method to access geolocation gcs definition for i model and context data horizontal and vertical
- Implement frontend reprojection when possible based on orbit gt implementation.
- Implement backend of new geo coord service reprojection for complex gcs.
- Obtain geoid separation from new geo coord service.
- Create examples and templates illustrating usage of iModel-to-iModel transformations and synchronization.
- Support for creating multi-process bridges using iModel.js backends. One process links with source application api to read the source application files. It then communicates with another iModel.js process via RPC to update the iModel.
- Support interactive iModel creation, editing, and augmenting on desktops via Electron.
- Minimize memory, power, and bandwidth requirements for mobile browsers.
- Improve usability for touch and small screen form factors.
- Support both completely offline and occasionally connected tablets and phones (iOS and Android).
- Filtering presentation rules and rulesets by supported ECSchema version.
- Auto-updating data in all presentation rules -driven components when:
- data in source iModel changes
- presentation rules change
- presentation ruleset variables change
- Making tree nodes "favorite" to make them appear at the top of the hierarchy.
- Improve filtering performance.
- Excluding or exclusively including some nodes from the hierarchy when filtering.
- Nested property grouping.
- Clickable navigation properties that select the target element.
- Better support for composite properties (arrays, structs, points).
- Support relationship properties.
- Support ad-hoc properties.
- Extend functionality of panel-based AppUi.
- Improve touch support and user experience on mobile devices.
- Multi-window support for desktop Electron applications.
- Enhance accessibility and keyboard navigation.
- Enhance UiItemProvider to support:
- More type editors, especially those necessary to read/write workflows
- Async list population
- Provide an API to allow apps, extensions, and packages to supply settings to the Settings Stage.
- Support for exporting to common file formats (e.g. gltf, obj, dxf, pdf, etc.)
- Provide reference implementation of reality data in Unity.
- Provide more open source examples of integration with third-party visualization systems (Unity, Blender, etc.)
- Expand filtering and quality control options for graphics extraction.
- Migrate full development of iModel.js and associated repositories to GitHub.
Feedback welcome! - Please let us know what you think should be on our priority list. File an issue on GitHub.
Last Updated: 07 July, 2020