MachineWorks 8.8 includes significant upgrades to MachineWorks GPU - the new version of MachineWorks that performs geometric modelling operations on the GPU.
Highlights include:
- GPU-based raytraced rendering
- Simplification/decimation of meshes during solid extraction
- Significant performance improvements to seek and playback of recording files
- Setting of hard clash tolerances on fixture solids
In addition, the release incorporates some minor new pieces of functionality, including:
- Snapshot differences can now be saved and imported to a new session as a stock.
- Additional support for multi-axis turning cuts.
- Ability to attach multiple work assembly objects to a workpiece reference assembly.
- Various render query extensions.
GPU-based raytraced rendering
In MachineWorks 8.8, MachineWorks GPU has been enhanced to support GPU-based raytracing of analytic surfaces. Based on Multicut technology, a ray fired from each pixel is intersected with the analytic surface identified from data stored on the underlying tri-dexel model, as opposed to from the dexel model itself or a mesh reconstructed from the dexel model.
As the surface coordinates and their normals are computed from analytic equations the accuracy is very high, leading to precise and detailed images of surface quality even when the acceptable dexel resolution is being stretched by available GPU RAM.
Since the computation of both the underlying dexel model and the ray queries are done on the GPU, with no requirement to transfer data back to the CPU, on a modern GPU the raytrace update is almost instant in most cases, allowing fast interactive inspection of surface quality and detail.
A demonstration of MachineWorks' GPU ray-tracing can be found on the MachineWorks YouTube channel:
Simplification of meshes during solid extraction
Solid extraction allows solids to be output in mesh format, facilitating conversion of data between different underlying geometric representations. In some cases, such as tri-dexel stocks with a fine grid resolution, these meshes can be very complex, requiring a lot of memory. It is now possible to simplify these meshes during extraction.
A user-defined tolerance is specified, such that the decimated mesh is guaranteed to be no further than the tolerance from the original at any point. Simplification is also very effective at reducing the data size of meshes generated using MachineWorks’ polygonal modelling technology and for higher tolerance simulations significant data reductions can be achieved on export without obvious degradation in visual quality.
Significant performance improvements to playback, rewind and seek of recording files
MachineWorks’ recordings provide a compressed archive of an entire simulation, incorporating the polygonal geometry created during each cut. They can be replayed in a web browser without the requirement to host MachineWorks core libraries locally in the client. Recordings can also be replayed within a desktop application to provide a faster replay mechanism for simulations that have already completed.
As well as supporting a WebGL-based WASM/Javascript player, the MachineWorks’ client library also supports a render query like interface, allowing clients to extract polygons from the recording per update for rendering into their own graphics engines.
In MachineWorks 8.8 the following improvements have been made to recordings:
- Faster playback – for example an animation of a half million cut 5-axis simulation can be replayed in five to ten seconds on a standard laptop
- Faster seek – for medium sized simulations, the simulation replay can be set to any point in the file almost instantly. For larger simulations the update takes a few seconds.
- Copy a live recording – to support the workflow in which the user wishes to seek to a previous point in the recording before the original simulation that is generating the recording has completed.
- Order independent transparency has been added to the OpenGL and WebGL based graphics engines inside the playback libraries.
A demonstration of MachineWorks' recordings can be found on the MachineWorks YouTube channel:
Setting of hard clash tolerances on fixture solids
Hard clash tolerances are defined in order to filter out false positives in clash detection that can be caused by slight variations in numerical data, such as slight discrepancies in the representation of the surface as planar facets, or sampling of the toolpath into discrete position data.
When a hard clash tolerance is set, two bodies can have intersecting facets, but if the depth of the intersection is below the tolerance threshold, the intersection will not be categorised as a clash.
MachineWorks already supports setting of hard clash tolerances on tools, tool holders and specific solid pairs. These limits, which were in place largely due to the computational expense of computing a meaningful depth of intersection, have been partly removed so that users can now also specify hard clash tolerances for static and moving fixture solids, allowing filtering across the full machine environment.
Additional support for multi-axis turning cuts.
It is now possible to simulate material removal for a turning tool performing a B-axis movement in which the turn plane changes during the move, resulting in the ability to support more complex operations such as simultaneous multi-axis motions about both B and C axes.
Snapshot differences can now be saved and imported to a new session as a stock.
MachineWorks’ snapshots provide an in-process bookmarking mechanism that efficiently archive the in-process stock model so that it can be easily restored at any point.
Snapshots are a useful way to investigate what-if machining scenarios. MachineWorks supports creation and management of snapshot trees, along with 3D Boolean difference computation between snapshots that are branches of the same tree, or snapshots from different trees.
In MachineWorks 8.8 snapshot differences can now be exported from the machining session in which they were created, and reimported into new sessions as stock, fixture or target solids.
Ability to attach multiple work assembly objects to a workpiece reference assembly.
Although this behaviour was previously available, it has now been formalised with a new API that allows addition and management of multiple work assembly objects to a workpiece. This makes management of multiple setups on complex machining centres easier to manage from a coding perspective.
Render query extensions
MachineWorks’ render query interface allows applications to use and efficiently update geometry supplied by MachineWorks in their own graphical scenes and graphics engines, without causing conflicts with the graphical surface e.g. the OpenGL context.
By default the render query interface batches incremental triangle updates into sizes that are intended to be close to optimal for creating vertex buffers or VBOs.
In some circumstances the host application requires greater control – for example, in order to organise triangle groups based on the requirements of its own per frame update process.
In MachineWorks 8.8 options have been added to, in effect, turn off MachineWorks’ batching so as to allow the application to use their own scheme. In addition a new property provides a mapping between individual triangles in the render query and the original face entity, making face property queries more efficient.