Table of Contents
Hello Creators,
After introducing the robustness and speed improvements to our new in-experience CSG API’s, we are now bringing the same set of improvements to Studio. The improvements are available as a Studio Beta feature and can be enabled in the Studio Beta Features window by checking the “Studio solid modeling improvements” checkbox.
Improvements
Performance
Solid Modeling operations within Studio now enjoy the same performance improvements as in-experience. “Cold start” performance and operations with complex shapes, tools and interactions have been improved across the board.
The example below shows the difference when unioning 20 parts together before and after enabling the Studio Beta. Take a look at some of the before / after examples below.
From left to right: Current behavior vs. With Studio beta enabled
Robustness
This Studio beta includes various stability and robustness improvements as well. We improved the reliability of the engine to vastly reduce the cases that could result in an invalid operation. This should allow you to be much more confident in leveraging the Solid Modeling (CSG) system in your experiences. We are committed to stamping out every possible “invalid operation” error remaining so please drop us a note with an RBXL example if you do face one in the future.
Similar to the in-experience release, this Studio beta should also fix most orientation issues users were experiencing.
For example, below you can see how with this update there are no more incorrectly shaded triangles anymore.
More Optimized Meshes
This update reduces the number of triangles in meshes produced by CSG in many cases. It’s especially effective for spheres, creating much more optimized meshes. This can improve performance in downstream experiences.
A common use case for spheres is to align them with cylinders to create capsules. With this beta enabled, the resulting geometry is a lot more optimized as you can see in the diagrams below
Legacy APIs in Studio
When enabling this beta feature, any usage of the legacy [BasePart
CSG Api](BasePart | Documentation - Roblox Creator Hub) and CSG Plugin Api in studio will automatically benefit from these improvements. However, please note that in-experience usage of the [BasePart
CSG Api](BasePart | Documentation - Roblox Creator Hub) will not yet be affected.
Upgrade Guide
We’ve ensured that existing CSG Parts remain unchanged when these improvements are enabled. Additional modification on existing CSG parts, such as additional Unions, Intersect or Subtract operations, should not introduce visible changes to the unaltered portions of the object.
There are two cases where you might notice minor geometric differences:
- Modeling far from the Origin
- Working with features smaller than 10-6 studs
The image below shows a CSG Part on the left and a remodeled version with beta feature enabled on the right. As you can see the small feature circled in red is gone when the beta feature is enabled.
We recommend that if you are modeling very small features, make sure that the object is close to the origin. Once you finish your part you can then safely move it to its desired location. In the above example, if we move the Part to the origin, reevaluate the Part and then move it back, we retain the small feature even when the beta feature is enabled.
Looking Ahead
We’re continuously enhancing the Solid Modeling tools in Roblox. One of the most common requests we keep hearing from the community is the ability to perform solid modeling operations like Union, Subtract etc. on Meshes. Significant progress has already been made on this front but we are ironing out some issues with texturing.
Additionally, we’re also hard at work to add plugin support for the recently released GeometryService
APIs so you will have one set of APIs for all your Solid Modeling needs with the full feature set.
Your feedback remains important to us. If you encounter any issues or have suggestions about these upcoming features, please don’t hesitate to let us know. We’re committed to addressing your concerns promptly.
Thanks,
@pho01proof, @BelgianBikeGuy, @syntezoid and @FGmm_R2, on behalf of the entire Geometry team