Virtalis Hub and Web Viewer
2025.1
Released 2025-03-21
Added
- Metadata display to the product tree
- Grab, Move, and Reset laser modes that can be selected via icons above your controller. Choose between laser off, standard laser, short laser (for grabbing and moving objects with precision), and reset laser (instantly return manipulated objects to their original positions)
- Revision history button to the Scenes page to permit you to review old versions of your projects
- Rules-based controls for key features like the product tree and metadata display to permit them to be customised
- Textures applied in Visionary Render now appear correctly in the Web Viewer
- Basic animations created in Visionary Render now work in the Web Viewer
- New movement speed controls that give you more precise navigation control
- Support for fullscreen mode on double-click
Changed
- Perform object culling on the client-side to improve performance and the stability of collaborations
- Made several improvements to how complex data is managed and processed to allow the server to host more complex scenes with greater efficiency
- Updated the frontend to permit you to focus on your content, including a cleaner, collapsible collaboration panel and product tree
2024.3
Released 2024-09-24
Added
- Picking support to the product tree and 3D scene
- A window to display all active collaborators in the scene
- Support for custom background colours if set in Visionary Render scenes
- 'Create project' option during asset import to streamline the process of creating and publishing a new project from an asset
- Ability to disable 3D scene picking for specific projects in Visionary Render using the rules system
- Ability to select, show/hide and centre the view on items in the product tree
- Scene title display once a scene has loaded
- Notifications to highlight events such as users entering or leaving a collaboration
- Support for Pico devices
Changed
- Improved keyboard controls by reducing the likelihood of accidently triggering developer shortcuts
2024.2
Released 2024-06-20
Added
- GUI supports dark mode via the system-wide dark mode setting on your machine
- Support for Xbox or gamepad controllers to navigate the GUI on devices such as a PC or Apple Vision Pro
- Coloured name tags on avatars to facilitate collaboration
- Lasers that can be toggled on and off in VR
- Ability to import viewpoints and a tab next to the product tree for viewing them
- Support for importing pivots
- A help icon that shows navigation controls in a popup when clicked
- New icons to the product tree to permit different node types to be easily identified
- Texture colour approximation using average texture colour (full texture support will be added in future)
Changed
- Various UX improvements to the GUI such as better upload workflows and job information displays
- Improved AR touch controls on mobile devices with WebXR support
- Optimised API data queries, which is particularly beneficial on slow or volatile networks
- Optimised page loading and data filtering
- Improved support for Apple devices (you can now view your scenes on an iPad or iPhone)
2024.1
Released 2024-03-08
Added
- Scenes can be uploaded to and downloaded from Virtalis Hub directly to Visionary Render
- Product tree in desktop mode
- Show/hide assemblies in the product tree to focus on specific parts of your scenes
- Double-click on assemblies in the product tree to view them in the scene
- Live sessions page to make it easier to join collaborative sessions in HMDs
- Avatars and controllers are displayed in the scene
- Control the level of detail of your scene from the settings menu
Changed
- Improve the performance of importing and publishing
2023.2
Released 2023-10-06
Added
- Button to the navbar to access the new beta web viewer
- Basic occlusion culling to speed up rendering
Changed
- Improve rendering performance for complex datasets
- Improve the artifact listing page
- Improve the mesh optimiser
Removed
- Existing web viewer and its functionality as it wasn't scalable
Fixed
- Crash in scenes with snapshots due to metanodes not being sorted
2023.1
Released 2023-02-28
Fixed
- Jobs can stall at the "Cancellation Requested" stage when they are cancelled
- Handle invalid project names in the advanced editor
2022.4
Released 2022-10-18
Added
- Cancel button to the jobs page for in progress jobs
- View button to the jobs page for completed projects
Changed
- Reduce disk usage when importing
Fixed
- File uploads can stop working
- Job status indicator is stretched in Windchill jobs
2022.3
Released 2022-08-05
Changed
- Reduce memory usage when translating
Fixed
- Rules for scenes with empty Libraries now work in a way that is consistent with scenes that do have Libraries
- More efficient node property storage by using the 'string-default-property-values' flag in the translation step
- Better exception handling when dealing with MySQL errors
- Textures in scenes created in Visionary Render 2019.5 have their RGB channels handled correctly
2022.2
Released 2022-05-31
Changed
- Properties with default values are now removed in the Translation step
Fixed
- Significantly decreased publishing pipeline memory usage, by making it now use a streaming reader/writer instead of loading the whole file into memory
- Significant decrease in memory usage for the import stage
- Prevents duplicate versions of a published asset from appearing in rare cases
2022.1
Released 2022-02-25
Fixed
- Fixes an issue where services would not exit correctly in the case of a configuration error because they were being kept alive by the queue connection
- Added local time usage in the job scheduler
- Fix error handling when a request fails in the Artifact Publishing API
- Fixes import silently failing when selecting a file in a sub-folder as the main file
- Issue when importing where files with the same name but in different folders would cause the upload to hang indefinitely
- Fixes unnecessary extra nodes being created in the tree
2021.5
Released 2021-12-15
Added
- Adds OAuth2 Client Credentials support for accessing assets from external systems
- Also adds Bearer Token and Custom Auth Header support
- Adds support for custom root certificate authorities
- Added config to switch on or off the use of HTTP URLs
Changed
- Enabling and disabling scripts now requires the relevant role as opposed to a group
- Improves high LODs of some meshes that have undergone Mesh Splitting, specifically for meshes containing duplicate vertices
- Changed importing an asset, so you cannot update an imported asset groups
Fixed
- Fixes a bug in the creoview translator where only the first instance of an instanced part would be imported correctly
- Fixes a bug on the import page where asset names with ampersands in asset name cause display problems
- Fixes collaborationSessionApi potentially leaking existence of a session a user should not see
- Fixes a bug where projects with names containing special characters would fail to publish
- Fixes startup error messages to do with invalid secrets so that they include much more detail
- Fixes a bug where the JobStatusList page would time out inapproppriately, particularly on a fresh boot
2021.4
Released 2021-10-29
Added
- Uses the Amazon S3 SDK instead of the Minio API to interface with minio. This fixes an issue with connections to the binary store being left open
- Adds mesh splitting step to the translation service
Changed
- Dates and times are now shown in the user's local time rather than in UTC
Fixed
- Fixes a bug where cleaning up of Scratch Area at the end of a Project Publish job could fail
- Fixes a bug where the allow scripts setting would not be preserved sometimes between project updates
- Fixes a bug where failed publishing jobs could be incorrectly marked as complete under certain conditions
- Fixes a bug in the advanced editor by performing additional security checks when dealing with assets
- Fixes a bug with the comment system by performing additional security checks when dealing with threads and comments
- Fixes slow request times in the ImportFolderApi when there are many files in the folder
- Fixes a bug in the creoview translator where only the first instance of an instanced part would be imported correctly
- Fixes a bug where file with '#' character in them would fail to import
Security
- Fixes a possible database injection in the json rules processing
2021.3
Released 2021-09-01
Added
- Extra configuration options for performance tuning
- Adds Version information to import jobs on the jobstatus page
- Adds option to allow / disallow scripts when creating / editing a project. Option defaults to disallow, permissions required to change to allow
- Adds a service for design review comments
- Adds product tree api and the backend to save and restore product tree state
- Adds a framework for providing graph database migrations
- Adds a new pipeline runner action that resolves references to other models, for PLM integration
Changed
- The text in import folder web app was updated and a space was added after certain checkboxes
- Modifies JobQueryApi to search jobs by job parameters
- Updated the ProjectAuthorWeb to display that no assets have been found in the AssetPicker and Library
- Clarified usage of the properites of a import messages
- Reduces log spam and cleans up some log messages
- Cleaned up ProjectManagementApi
- Move duplicated config variables into reusable classes
- Updated DAO layer to use RunNewTransactionAsync
- Changed Allow Scripts text to indicate when a user does not have permission to change whether scripts are allowed, and hides radiobuttons when this is the case
- Updated ProjectManagementApi to return the created and updated date of vrmodels. It also returns the created date of each vrmodel revision
- Upgraded React apps to use React 17
- Changed asset list to order to A-z by default
- Updated TemplateProcessors to use a token to resume the pipelines rather than re-posting queue message
- Pipelines now link artifacts to visualisations
- Moved common API and Services startup code to shared classes
- Job Status page now displays the Source Revision of assets if applicable
- RunNewTransaction Async call returns the value rather than just changing it inside its body
- Job API now supports a callbackURL which returns a success or failure to the importer
- Searchbar automatically searches through the projects/library pages after every letter so no longer a need to press the enter button
- Adds links from ProjectRevisions to their VRModels to improve search performance
- Updated Project list so that Projects are only returned when the user has at least one group for the project and each asset in the project
- Improves some error messages to include more of the Exception stack to aid in debugging issues
Removed
- Removed unnecessary ArtifactPublisherService
Fixed
- Fixes a thread safety issue with the instrumentation code
- Fixes issue that would result in a upload failing when two files are uploaded at the same time
- Fixes alphabetical sorting of Projects / Assets being case sensative
- Fixes issue in group configuration for Projects and Assets, where changes from "Me and groups I have invited" to "Only me" would not be made
- Fixed issue where version number shows up on projects that have been published when the source data changes
- Fixed issue where artifacts would be viewable before they had completed
- Fixed a problem where projects couldn't be opened after changing their permissions
- Fixes bug where cleaning up of Scratch Area at the end of a Project Publish job could fail
- Fixed header overflow issue on small screens for Library and Projects (Home) pages
2021.1
Released 2021-03-24
Added
- Added filtering, pagination and sorting to the 'vrmodels' endpoint of the Project Management API
- Adds an endpoint to the changelog service /licenses that includes the licensing information for our third party dependencies
- Additional configuration for serilog can be made in via appsettings.json or via environment variables. See more info here
- Added sort option to the list of projects
- Added sort and search option to the list of assets, project and library index views
- Added a new rule 'CreateNodeRule' to the JsonTemplateProcessor
- The TranslatorServiceConfiguration.Filesources configuration supports a UrlMapping so that if a request is recieved for a certain hostname, the hostname, port and protocol can be replaced with different values
- Stores the remote version of scenes coming from external systems
Changed
- Ports for API and web app docker images have been changed to 8080 for everything to be more consistent
- Centralise version numbers
- add vrtree migration step to the import of vrnative files, which now takes care of both the new uuid generation and the uuid links output
- The {id} versions GET endpoint for the project api now returns a list of revisions with more detail
- Treats the rules in the advanced editor as Json rather than a string (no escape characters required any more)
- Modifies the internal Scratch Management API so its POST endpoint now starts a background job, callers now use a new GET endpoint to get the status
- Silences spammy db query logging for APIs
- Fixes non-awaiting asynchronous call in the project API
- Modifies the internal Import API so its POST endpoint creates a background job, and the state/result of the job is probed from another two GET endpoints
- Modifies the internal Artifact Publishing API to be more stable by utilizing the Polling Pattern
- Modifies the internal Scratch Management API to utilize the Polling Pattern to remove very long requests
- Changes the file upload to use a background job for the final part of the file upload, so the request now responds instantly instead of stalling when the file reaches 100% and potentially timing out
- Modified were internal http errors occur to parse the http response content and report the error from it
- Modifies the internal Scratch Manipulation API to utilize the Polling Pattern to remove very long requests
- Makes it easier to trace the progress of a job
- Improves some error messages that may show in job status page
- Removes warnings about insecure AuthUri for internal connections
- Added clearer error handling to the translation stage
- The VRTree cache is now disabled for the translator host (it was unnecessary and causing exceptions when it was full)
- Changed the background job framework to use an in-memory database
- The template json is now automatically formatted when editing the template
Fixed
- Fixes job type when a publish job is scheduled. It is now ProjectPublished instead of DataAdded
- Assets that are still being imported will no longer be returned by the ProjectManagementAPI, and so the user (and other services) are not aware of their existence until the import has Completed
- Job error message would only display a retry error message this is now been fixed to show the actual error message
- Publishing a Project can publish a different revision than expected is now fixed
- VRNative files with missing attributes are now importable again (regression caused by PLAT-602 change above)
- Fixed an obscure issue where libraries being under nodes other than libraries could cause a duplicate attribute error
- Fixed issue where once a project rule is created and published, it can't be revoked
- Fixes bug where Lum16 DDS files weren't parsed correctly
- No longer throws an exception with an empty rule list, which was preventing projects to have extra assets added to them
- Fixed issue where a job reported as Complete when the publishing a project fails
- Removed unneeded 'Select All' checkbox for the asset picker for a project
- Cleaned up IVRModelService to handle exceptions appropriately
- Updated try catch blocks in BackendStorage
- Fixes issue importing any file with a VR_VEC_STRING property
- Fixed Job Status being reported as "Ready To Import" when it is already Importing
- TranslatorService was using twice the amount of memory it needed to use
- Fixed Job Status freezing for large jobs
- Fixed issue were the projects head revision would be missing for auto projects
- Updated Project API to be more robust when handling exceptions
- Files that fail to load due to a vrtree error when importing (e.g. incomplete files) now report the exception information rather than just failing with an ambiguous error message
- Fixes potential connection issues with some services by making hangfire worker thread counts configurable
- Error messages related to /health endpoints are no longer filtered out
- Translating files in subdirectories in the import folder works instead of producing a directory error
- Fixes the Import wizard presenting the data for a previous import
- Fixes issue that could result in duplicates of a project showing up in the Project list
- Fixes bug that caused a Publish Project job to be stuck as In Progress when it fails to apply a rule
- Fixes bug that caused a ChangePropertyRule to fail if the pattern had a backslash in a name
- Fixes layout issues on the project and asset list pages when viewing on lower resolution screens
- Fixes bug preventing the updating of a Project with no rules
- Fixes schedule project publishes hanging indefinitely
- Add validation to CreateNodeRule so that it can't create nodes with metanode types that don't exist
- Fix a bug where ChangeNodeRule couldn't be used on unversioned metanodes
- Update the translator host to add all core metanodes to a model during the translation stage so they're accessible from rules
2020.3
Released 2020-11-13
Added
- ArtifactAccessApi - The artifact endpoints are now authorized and have group permissions that can be specified to limit what users have access
- CollaborationSessionApi - The session endpoints are now authorized and have group permissions that can be specified to limit what users have access
- ProjectManagementApi - The projects, models, and templates endpoints are now authorized and have group permissions that can be specified to limit what users have access
- ProjectManagementApi - When retrieving project data extra data is available; a publish trigger, the hour to publish if set to a daily trigger, a list of groups and a list of actions
- ProjectManagementApi - When retrieving project information extra data is available; whether or not the project is a draft
- JobQueryApi - The job endpoints are now authorized and have group permissions that can be specified to limit what users have access
- ImportFolderWeb - Adds support for chunked uploads and upload resuming
Changed
- ImportFolderWeb - Files are now appended when dragging more than one onto the drop zone
- ImportFolderWeb - The paths of files are now shown before upload in the case of folder upload, rather than just the filenames
- PipelineSchedulerService - Renamed service from Artifact Task Generator to Pipeline Scheduler Service
- PipelineSchedulerService - Runs a Job every hour to check if any Projects are set to be run on that hour, if so generates a message for the Pipeline Runner Service
- PipelineSchedulerService - Creates a job using the Job Api when scheduling a new run of a Project pipeline
- ArtifactAccessApi - For an empty artifact list, the api will now return an empty list [] instead of a 404 error
- ProjectManagementApi - ProjectManagementApiConfiguration updated to have: JobApiAddress, QueueAddress, QueueVHost, QueueName, QueueTimeout
Fixed
- TranslatorService - Fixes an error when attempting to download multiple files during translation
- TranslatorService - Failed translation attempts will now be retried
- TranslatorService - AverageColour for textures used prior to loading texture is now in the correct ARGB format
- CreoviewTranslator - Fixed various issues with Creoview/Windchill file import, including:
- Mixed case filenames and filenames containing spaces are now supported
- PVZ files with nested directories are now supported
- Invalid characters in the tree data in various cases is now fixed