Workspace 5.0.0 Released

January 15th, 2018

The Workspace team is pleased to announce the next major release of Workspace – version 5.0.0. This release contains over 125 bug fixes and 45 new features, including:

  • Major usability improvements to the Workspace canvas UI (featured in an earlier blog post)
    • Port racks can now be pinned to keep them visible
    • Port labels will automatically flip around their ports to avoid text overlapping with other port labels
    • Operations with custom properties are now marked with a small indicator button that can be pressed to conveniently display the relevant properties dialog
    • Tooltips on the canvas now stick to the mouse cursor
  • A new Distributed Plugin which contains:
    • A suite of ZeroMQ operations for integrating high-performance message queues into workflows and applications
    • A new RunOperationsInParallel operation to allow specific parts of a workflow to run in parallel
    • A new ScheduleWorkflow operation to allow nested workflows to be directly scheduled on another machine
    • A suite of MongoDB operations for accessing NoSQL databases within workflows
  • Improvements to WSGL visualisation to support large 3D point cloud datasets
    • New SplitAndLod (level-of-detail) operation to allow large point clouds to be split into multiple sub-components, each with multiple levels-of-detail
    • Support in the WSGLWidget for dynamic level-of-detail rendering, where the appropriate (discrete) level of detail is determined at runtime based on the position and orientation of the view camera
    • The addition of a new HDF5 based mesh / point-cloud storage data format to help with dynamic streaming of LOD for point clouds that do not fit into memory
  • Workspace 5.0.0 is the first Visual Studio 2017 release using Microsoft’s Universal C Runtime which you read about on the Visual C++ blog.
  • Workspace 5.0.0 is built against Qt 5.9.1 LTS, ensuring a stable and long-term base for future releases
  • The ability to modify MeshModelInterface objects directly in PythonScript operations. This allows workflow developers to write powerful scripts to process and augment their 3D mesh and point-cloud datasets
  • Workspace logging is now formalised into 5 different logging levels which can be individually toggled from Workspace editor.

Workspace 5.0.0 can be downloaded here.

The full Workspace 5.0.0 change log is below.

 


Features

  • [WORKSPACE-571] – StringSelection multi-string selection support
  • [WORKSPACE-1220] – WorkspaceServer – Add support for auto-mapping of a user’s home directory
  • [WORKSPACE-3634] – Remove master port buttons from operations
  • [WORKSPACE-4768] – Make it easier to get mouse cursor to a port in a very large rack
  • [WORKSPACE-4993] – Ability to set color of camera frustum outlines
  • [WORKSPACE-5247] – Support for strings in Python MeshModel interface
  • [WORKSPACE-512] – Volume shader: Add support for standard light types present in the scene
  • [WORKSPACE-1493] – Add support to the IOTreeWidget to indicate which inputs / outputs are ‘connected’ or not. This could be done by adding an icon to each row, by disabling the row, or by changing the background-color of the row.
  • [WORKSPACE-3720] – “Glyphing” tutorial update needed to explain why changing file name does not update image
  • [WORKSPACE-4277] – Create a more general CreateObjectDictionary operation
  • [WORKSPACE-4519] – Determine appropriate distance for LOD functionality for point clouds
  • [WORKSPACE-4559] – Create new HDF based hierarchical mesh / point cloud storage data format to facilitate LOD streaming
  • [WORKSPACE-4618] – Flip operation port labels to other side during port hover event
  • [WORKSPACE-4628] – Operation to save an ImageTileSet to disk
  • [WORKSPACE-4698] – Create ObjectDictionary properties UI
  • [WORKSPACE-4730] – ‘Enabled’ state of the log catagories needs to be saved in settings
  • [WORKSPACE-4739] – Stop hide timer on port racks on mouse hover event
  • [WORKSPACE-4744] – Refactor port rack visibility code
  • [WORKSPACE-4745] – Unpinned ports racks should be hidden as soon as mouse cursor enters another operation graphics area
  • [WORKSPACE-4746] – Update tutorial screenshots with new UI info
  • [WORKSPACE-4764] – Allow Camera symbols to change color, have annotations and / or change appearance in other ways
  • [WORKSPACE-4798] – Operation labels should not be hidden when small port racks are flipped
  • [WORKSPACE-4799] – Port rack label flipping should trigger by port graphic overlap
  • [WORKSPACE-4804] – Left clicking on empty canvas should not unpin port racks
  • [WORKSPACE-4809] – Shader that applies textures projected from the perspectives of a set of arbitrary cameras
  • [WORKSPACE-4831] – Ability to set the size of the WSGL HUD text
  • [WORKSPACE-4868] – Add settings option to show port racks on click
  • [WORKSPACE-4954] – Update tutorials to replace references to DataCollection with Object Dictionary
  • [WORKSPACE-4960] – Test Qt 5.9 LTS vs2017 release to see if vs2015 builds are supported.
  • [WORKSPACE-5002] – Add libcurl option to PackageThirdParty operation
  • [WORKSPACE-5077] – Ability to toggle camera frustums on and off
  • [WORKSPACE-5095] – Support dropping workspaces in the catalog onto the canvas as external references
  • [WORKSPACE-5149] – Update splash screen for Workspace 5.0 release
  • [WORKSPACE-5153] – Change or modify current model used in “Changing a model’s appearance” tutorial
  • [WORKSPACE-5159] – Revisit footer navigation in all tutorials
  • [WORKSPACE-5166] – Add definitions for “upstream” and “downstream” somewhere early on in the tutorials
  • [WORKSPACE-5190] – Add Development menu launcher support for Visual Studio 2017
  • [WORKSPACE-5243] – Ability to build Rendering plugin against an installed version of Workspace
  • [WORKSPACE-5258] – Remove < Qt5.6 conditionals (QWebPage) from MapWidget
  • [WORKSPACE-5273] – Simple Application load/save should be compatible with wsg files

 

Bugs

  • [WORKSPACE-95] – Undo deleting a WorkspaceInput or WorkspaceOutput does not preserve ordering
  • [WORKSPACE-618] – Scene editor: Node properties shader doesn’t remember its selected node-state when it is loaded from file
  • [WORKSPACE-664] – Scene interaction widget: crash when adding a meshmodelsequence with a library already attached to the scene
  • [WORKSPACE-729] – Adding streak-glypher to a model w/o streak data to scene-editor causes the scene editor to lock up (tree is greyed out)
  • [WORKSPACE-1994] – “Picked Node” indicator too large on some models
  • [WORKSPACE-2008] – PickFBO should be initialised in ScreenSpaceLayers rather than WSGLRenderer
  • [WORKSPACE-2201] – Render cache broken when changing offscreen width / height
  • [WORKSPACE-2408] – PartitionedVector template causes compiler warnings under MSVC
  • [WORKSPACE-2715] – When adding a PBS scheduler the port should default to 22
  • [WORKSPACE-2897] – Output on Element State Mapper is called “Node mapper”
  • [WORKSPACE-2979] – Composite image from array (nested Workspace) Operation broken
  • [WORKSPACE-2999] – While loop with ‘enable loop’ unchecked is still updating its inputs
  • [WORKSPACE-3010] – Nested workspace from external source via relative path is broken
  • [WORKSPACE-3048] – SQL database example doesn’t work on OSX
  • [WORKSPACE-3067] – Phantom input created on RunQtScript (causes crash)
  • [WORKSPACE-3070] – Batch execution tutorial out of date – still refers to the “blank image” operation
  • [WORKSPACE-3072] – Workspace batch mystery crash on exit
  • [WORKSPACE-3294] – assert(!ssaoSupported_) on workspace load
  • [WORKSPACE-3308] – Create WorkspaceInput->WorkspaceOutput and nest them all together will crash the Workspace
  • [WORKSPACE-3341] – Arrow spacing in workspace GUI does not apply to a newly opened file unless changed
  • [WORKSPACE-3368] – ImageWriter operation file dialog contains invalid file extensions
  • [WORKSPACE-3391] – After starting Workspace two Qt warnings appear in the log window – QIODevice::write: device not open
  • [WORKSPACE-3395] – Workspace is crashing in Counted Loop
  • [WORKSPACE-3506] – Crash when using two offscreen rendering ops on the one workflow
  • [WORKSPACE-3599] – enable SSAO got assert(wsglGoodFramebufferState()); with error GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
  • [WORKSPACE-3701] – Resolution of “The 400×300 output image” image in “Batch Execution” tutorial is not the stated 400 by 300
  • [WORKSPACE-3719] – “Fit view to scene” occasionally loses model
  • [WORKSPACE-3722] – “Linear tranforms” tutorial – instructions out of date / wrong
  • [WORKSPACE-3723] – “Linear transforms” tutorial – no “Respond to interaction” input exists on camera builder
  • [WORKSPACE-3758] – Can’t search within help page
  • [WORKSPACE-3785] – Open NetCDF file gsAPSIM.nc – nothing is displayed and the GUI fails to cleanly redraw
  • [WORKSPACE-3805] – When two operations are placed too close
  • [WORKSPACE-3826] – Asserts in SimpleApplication template don’t help user who use RelWithDebInfoBuilds
  • [WORKSPACE-3846] – WSGLWidget does not produce image in executable
  • [WORKSPACE-3882] – Call to bindVertices() creates a new WSGLBufferObjectCacheItemPtr then attempts to access empty vertexArrayProperties_
  • [WORKSPACE-3896] – Dragging dependency output to MeshModelInstance builder, the candidate input arrays not show up.
  • [WORKSPACE-4036] – GridViewWidget not working on Windows
  • [WORKSPACE-4141] – ERROR: Cannot connect type CSIRO::Mesh::ElementStateMapper to CSIRO::Mesh::ElementMapper
  • [WORKSPACE-4196] – Python-script with can become unresponsive
  • [WORKSPACE-4220] – Can’t logText from WSGLWidgetImpl ctor without crashing
  • [WORKSPACE-4251] – Resolve File Path does not work with a path to a server location
  • [WORKSPACE-4253] – Backup files with external workflows do not work on recovery
  • [WORKSPACE-4320] – QtDesigner hangs on launch
  • [WORKSPACE-4362] – WSGLWidget not initialised correctly (and crash) when auto loaded by workspace-gui
  • [WORKSPACE-4378] – Unable to see sample workflow files in open file dialog after running sample_parallel.wsx
  • [WORKSPACE-4384] – “QtWarning: /deep/ combinator is deprecated” displayed on Workspace start up
  • [WORKSPACE-4436] – RunMatLabScript cannot run MatLab script as opposed to MatLib script file.
  • [WORKSPACE-4482] – Incorrect visibility and sort order of canvas elements
  • [WORKSPACE-4486] – Broken DAP link in provenance tutorial
  • [WORKSPACE-4491] – Crash after open/close help in workspace-gui.
  • [WORKSPACE-4504] – WSGL interactive manipulation does not work on retina screens
  • [WORKSPACE-4592] – VS2015 build of workspace-batch output cannot be piped.
  • [WORKSPACE-4598] – Program shutdown when RMB on decompose group to create variable
  • [WORKSPACE-4610] – Fit view to scene fails when model filename is corrected
  • [WORKSPACE-4654] – SplitAndLod crashes when passed an empty point cloud
  • [WORKSPACE-4659] – ObjectGroup::clear() method behaviour is unexpected
  • [WORKSPACE-4682] – Crash in IOModelImpl when closing workspace.
  • [WORKSPACE-4699] – wsglbufferobjectcache.cpp(119): warning C4312: ‘reinterpret_cast’: conversion from ‘unsigned int’ to ‘GLvoid *’ of greater size
  • [WORKSPACE-4701] – Add log categories to the settings UI for configuration
  • [WORKSPACE-4705] – Make WS_ASSERT methods debug-only, and add WS_VERIFY for release verification checks
  • [WORKSPACE-4707] – CMake configuration error – HDF5
  • [WORKSPACE-4709] – Bounding box of a volume mesh appears to be opaque to other meshes in the scene
  • [WORKSPACE-4750] – LOG_VERBOSE category not showing up in the UI
  • [WORKSPACE-4751] – Operations move when drag selecting
  • [WORKSPACE-4771] – Workflow causes segmentation fault on load in workspace 4.1.5 and 4.2.0 but not earlier versions
  • [WORKSPACE-4772] – RunMatLabScipt executing a MatLab::Function functions uses an implied working directory – so one should not be supplied
  • [WORKSPACE-4786] – workspace-server crashes on multithreaded execution
  • [WORKSPACE-4790] – Hover port event triggers visibility of recently disconnected port racks
  • [WORKSPACE-4791] – Fit view to scene on WSGLWidget broken in trunk
  • [WORKSPACE-4792] – Connected ports are not displayed after a connection has been removed
  • [WORKSPACE-4793] – Operation labels can disappear after setting connection
  • [WORKSPACE-4794] – Operation fade out effect no longer works
  • [WORKSPACE-4796] – Unpinned port racks are visible while operations are moved
  • [WORKSPACE-4803] – WSGLWidgetImpl keyboard event handling causing infinite keyboard move events to be created.
  • [WORKSPACE-4806] – Port racks can get stuck open after set connection action
  • [WORKSPACE-4807] – Workspace-gui editing of a large workflows almost unusably slow
  • [WORKSPACE-4826] – ObjectArrayWidget column can’t be resized and doesn’t autostretch
  • [WORKSPACE-4830] – New connections don’t respect the arrow percentage value
  • [WORKSPACE-4840] – GridScales should not be ‘pickable’
  • [WORKSPACE-4865] – Open recent workspace list may not include workflows on networked drives
  • [WORKSPACE-4874] – Graphics are sometimes not correctly updated when port rack closes
  • [WORKSPACE-4875] – Rearrange the tab names in the left hand pane of the configure application page to be in alphabetical order
  • [WORKSPACE-4882] – Bug in view frustum culling causing some objects to disappear when they are visible
  • [WORKSPACE-4923] – Workspace Widgets are changed by setWidgetReadOnly in Workspace applications
  • [WORKSPACE-4943] – Manipulator symbols do not show in the WSGLWidget if “show non models” is un-ticked
  • [WORKSPACE-4967] – Debug build crashes when attaching a WSGLWidget
  • [WORKSPACE-4970] – graphic elements drawing outbound canvas( in vs2015/vs2017 builds with Qt 5.9.1 for vs2017 tools package)
  • [WORKSPACE-5015] – Bug in Mesh::BoundingBoxMinimal
  • [WORKSPACE-5023] – “Connection copies source” lost on nesting workflow
  • [WORKSPACE-5032] – Object array builder -> Reset accumulation does not reset the ObjectArray when widegts are attached
  • [WORKSPACE-5035] – Object Array Widget resets range seatings when Reset accumulation is triggered
  • [WORKSPACE-5036] – WSGLWidget all black when using Workspace with Qt5.9
  • [WORKSPACE-5080] – Text and Image overlays for 3D rendering broken on Windows (vs2013/15/17 Qt5.6/5.9)
  • [WORKSPACE-5088] – Crash when loading Workspace if unknown scheduler type exists in settings
  • [WORKSPACE-5094] – Assert and crash on undo
  • [WORKSPACE-5103] – Crash in IOModelImpl::removeInput
  • [WORKSPACE-5109] – QtDesigner not launching from the developer menu in installed copy of Workspace
  • [WORKSPACE-5122] – Crash on loading workflow from command line
  • [WORKSPACE-5126] – Assert in call to WSGLTexture::setFiltering when un-docking gl widget
  • [WORKSPACE-5131] – Update docs for using an external install of Python or PIP
  • [WORKSPACE-5133] – DynamicOperationProperties class does not allow inputs / outputs with “.” in the name
  • [WORKSPACE-5136] – Qt Designer crashes on launch from workspace-gui (workspace-vs2015-5.0.0-11380.AMD64) Development menu entry
  • [WORKSPACE-5145] – “Working with display widgets” tutorial – CountedLoop custom ui not available as stated
  • [WORKSPACE-5156] – Plugin wizard refers to “CMake that came with the Workspace package”
  • [WORKSPACE-5158] – “Writing a Workspace Operation” tutorial is missing a screenshot
  • [WORKSPACE-5160] – “Writing a Workspace Datatype” tutorial is missing a screenshot
  • [WORKSPACE-5161] – Wizard-created code for Datatype falls foul of coding standards
  • [WORKSPACE-5162] – Workspace-agent should not ship in the default Workspace installation
  • [WORKSPACE-5163] – Wizard-created code for Custom Widget falls foul of coding standards
  • [WORKSPACE-5164] – Incomplete sentence in tutorial
  • [WORKSPACE-5165] – Create custom enum wizard, final page is editable
  • [WORKSPACE-5167] – Assert firing on exit when SSAO or DepthPeeling used
  • [WORKSPACE-5176] – CMake-gui and Qt Designer fail to launch from workspace-gui
  • [WORKSPACE-5180] – Crash when removing a connection between QVariant and ObjectGroup
  • [WORKSPACE-5195] – ElementColoringShader fails to load due to #extension being after #line preprocessing directives
  • [WORKSPACE-5206] – Unable to save workflow containing FilterMeshModel with non-empty input array
  • [WORKSPACE-5207] – Exception thrown (and caught) when attempting to delete a FilterMeshModel operation. Delete fails.
  • [WORKSPACE-5211] – Warning when serializing in a FilterMeshModel operation with default filter entries in “Filter” array input
  • [WORKSPACE-5213] – Clicking on grid in NetCDFViewer causes an WS_ASSERT fail
  • [WORKSPACE-5214] – NetCDFViewer landscape renderer no longer fits to view properly
  • [WORKSPACE-5222] – Charting: Memory usage is extremely high and results in a crash in QtWebEngineProcess
  • [WORKSPACE-5237] – Crash after corrupting input state in CreateChart operation
  • [WORKSPACE-5241] – Charting tutorial – able to get chart script into an incomplete state
  • [WORKSPACE-5246] – Error dialog on workspace-gui startup – “Entry point not found” for sceneGraphBackend
  • [WORKSPACE-5254] – Undoing a ‘remove connection action’ does not restore ‘connection copies source’ state
  • [WORKSPACE-5255] – workspace-gui crashes in 5.0.0 when trying to load external workflow with delayed load from another workspace-gui process
  • [WORKSPACE-5257] – glGetIntegerv(GL_DEPTH_BITS, &numDepthBits) returns numDepthBits=0
  • [WORKSPACE-5259] – Unable to “add server” to the table in “remote / parallel execution” settings
  • [WORKSPACE-5277] – Simple Application doesn’t load Python plugin
  • [WORKSPACE-5282] – Crash when click on a scene item that its operation has been removed.
  • [WORKSPACE-5289] – Create simple application wizard – importing existing UI file is not working
  • [WORKSPACE-5305] – FileIterator does not support Workspace-relative paths
  • [WORKSPACE-5306] – workspace-gui crashes on exit when help dialog open
  • [WORKSPACE-439] – Add parallel support for atomic operations
  • [WORKSPACE-4623] – Create Hdf5MeshModelInterface that is read-only
  • [WORKSPACE-4633] – Create Hdf5MeshModelWriter operation
  • [WORKSPACE-4638] – Allow render to obtain bounding box from HDf5 dataset w/o having to load all particles
  • [WORKSPACE-4643] – Ability to read a whole set of Meshes / LODS from a HDF5 file
  • [WORKSPACE-4644] – Ability to write entire Split and LOD’d point cloud set to a HDF5 file
  • [WORKSPACE-4653] – Modify Workspace packaging workflow to include HDF5 shared libraries