September 2024 update
Bug fixes:
- Fixed bug related to duplicated references when using linked models in the Elfsquad plugin.
- Fixed bug related to changing textures in application.
Docs:
Bug fixes:
Docs:
New features:
Improvements:
Bug fixes:
New features:
New features:
More realistic lighting. This change only applies to apps deployed from now on. We're minimizing impact on your apps, but some may need adjustments. Fine-tune lighting with the sceneOptions argument in UI Studio > ADVANCED. In the example below, the left image uses default lighting whereas the right is brighter with softer shadows with the code below:
export function productConfigurationFactory(): STUDIO.IProductConfiguration {
return {
sceneOptions: {
type: 'outdoor',
ambientIntensity: 1.5, // default is 1
sunIntensity: 0.5, // default is 1
},
// other configurations...
}
}
Use the new disableCastShadows
argument to generate images without cast shadows. Cast shadows are created when
objects block light and cast shadows on surfaces. While they add depth, you might want to remove them in some cases.
const image = await Studio.requestImage({
disableCastShadows: true,
// other args...
})
File replacement is now available: you can easily replace an uploaded file with a new version, updating all assets using it.
It is now possible for team owners to transfer applications from one team to another.
To move an application to another team, the team owner can follow these steps:
Once the application is successfully moved, it will be accessible and manageable by the team members of the target team.
We have released a new set of improvements for the DynaMaker platform:
As for deleting configurations:
LoadSave.openPopupLoad({
enableDeleteConfiguration: true,
})
We have also fixed a bug related to room scenes:
Fixed a bug in room scene options lightIntensity
. Setting lightIntensity: 2
is now properly scaling all the lights
in the scene by 2, as intended, instead of overwriting the different light intensities. If you need to revert to the
old (faulty) behavior, use an object as the value instead.
// if you had something like this...
sceneOptions: {
type: 'room',
lightIntensity: 2,
}
// ...and want to keep the old faulty behavior, replace it with
sceneOptions: {
type: 'room',
lightIntensity: {
ambient: 2,
far: 2,
left: 2,
near: 2,
point: 2,
right: 2,
}
}
As for the DAS plugin, we've deployed futher optimizations to PLUGINS.DAS.generateStepFile()! The new version greatly reduces the amount of data that is sent to the server from the browser, which should speed things up for large assemblies or users on slower connections. To get the new version, open the DAS plugin settings in the dashboard and click on Save.
Studio.openInfoModal
now returns a Promise that resolves when the modal is closed.SKYPARAM.DropdownItem
now has an optional argument "className," which can be used to target specific dropdown items
in CSS.This changelog entry presents a variety of notable updates and improvements to the platform. It introduces new functionalities such as material overrides for GLTF/GLB models, a custom fonts API, and a tags filter feature for selective geometry generation when using the component handler. There are also enhancements to dimension styles and defaults, the ability to dynamically show and hide metrics, and the addition of an automatic outline. The update further includes the implementation of a clipping planes API for precise control over object visibility, as well as the introduction of a Design Automation Service for seamless generation and export of STEP-files. Lastly, the changelog addresses several bug fixes and compatibility improvements with AutoCAD for generated DXF files.
Added the ability to override materials for GLTF/GLB models in the application. This allows developers to apply custom materials or textures to specific parts of the models. Read more about it here.
Introduced a custom fonts API that allows developers to define and utilize custom fonts within the application. The default font has been normalized to use Liberation Sans for both the scene and exported drawings, replacing the previous setup of Helvetica for drawings and Liberation Sans for scenes. Read more about it here.
Implemented a tags filter feature that enables users to generate geometry selectively based on specific tags assigned to component instances. Read more about it here.
Enhanced dimension styles and default settings. Improvements include new default options in layouts, new line terminators for dimension lines, and enhanced presentation for compact cases. Read more about it here.
Implemented the ability to dynamically show or hide metrics. You can now display or hide specific metrics with a simple function call. Read more about it here.
We previously introduced selective geometry interaction, which enables users to interact with individual geometry elements instead of the entire model. Additionally, an automatic outline can now be displayed when interacting with geometry, providing visual feedback and improving the user experience. While we're working on more detailed documentation for the automatic outline, please reach out to support@dynamaker.com if you would like to know more.
Implemented a clipping planes API that enables users to define and control clipping planes in the application. This feature allows for more precise control over the visibility and display of objects by selectively hiding or revealing portions of the scene.
Studio.setUpdateGeometryFunction(async (data, worldControls) => {
// ...
const clippedGroupId = 'my-clipped-group'
const clippingPlanes = [new SKYCAD.Plane(0, 0, 1, 10), new SKYCAD.Plane(1, 1, 1, 20)]
worldControls.setClippingPlanes(clippingPlanes, { groupId: clippedGroupId })
await worldControls.updateGeometry(geometry, { groupId: clippedGroupId })
})
While we're working on more detailed documentation for clipping planes, please reach out to support@dynamaker.com if you would like to know more.
With our Design Automation Service, you can now effortlessly generate and export STEP-files from your application regardless of if your app uses static models or not! You can read more about it here and here.
The recently added Studio.createFormModal()
makes it easier to ask for user input, for instance, when submitting a
quotation request. You can read more about it here.
Also this update improves camera rotation, zoom, and pan on touch devices. By default, one finger triggers interaction
(selectionEvent), and zoom is done with two fingers. You can change this behavior by using the
Studio.updateCameraSettings()
function and passing in the desired values for the oneFinger
and twoFingers
options.
For example, if you want rotation to be triggered by one finger instead of interaction and zoom-and-pan by two fingers, you can use:
Studio.updateCameraSettings({
touch: {
oneFinger: 'rotate',
twoFingers: 'zoomAndPan',
},
})
As for zoom-to-mouse, the default value of the camera setting zoomToMouse
has been changed from true
to false
. We
believe this is a more sensible default for most applications. If you want, you can enable zoom-to-mouse like this in
your app:
Studio.updateCameraSettings({
zoomToMouse: true,
})