[Studio Beta] Improved Solid Modeling behavior and performance in Studio


Hi Creators,

Today, we’re introducing an update to our Studio Solid Modeling tools to:

  1. Fix some workflow peculiarities with how the Negate tool interacts with Parts
  2. Improve the visual UX of the Negate tool
  3. Transition all the Studio Solid Modeling tools (Union, Intersect etc.) over to the new GeometryService APIs which drastically improves performance on complex Solid Modeling operations.

To enable the Studio Beta, go to File > Beta Features in Studio and enable the Updated Solid Modeling Buttons beta.

What’s new?

Streamlined workflow

The Negate button no longer creates a separate “NegativePart” instance. Instead, it simply applies a tag (rbxNegated) to the existing part, indicated by the negate icon on the right side of the Explorer. This means negating a part now preserves all instance properties and children. The concept of negation in constructive solid geometry is a modifier to one of the inputs in an operation (like Union or Intersect) and not really a standalone operation itself.
This improved workflow brings the data model representation of Negate more in line with how things actually work by just modifying the existing part instead of creating a new NegativePart.

(Left) New behavior; (Right) Old behavior.
Note the new Negate icon that shows up on the right side of the instance in explorer

Updated Visual Style

Negated parts now have an updated look that better balances between preserving the original part’s appearance while making the negation tint more visible.

(Left) New visual treatment for Negate; (Right) Old visual treatment for Negate.
Note how the tint is now brighter and easier to pick out against complex geometry behind it.

Improved Union / Intersect Performance

With this change, we can now cleanly upgrade all the Studio Solid Modeling buttons to use our latest and more powerful GeometryService APIs. This means you will get significantly quicker performance across all the operation types when working with complex CSG parts in Studio.

690x258
Performance comparison between performing a Union operation on six cones with and without the improvements.
(Left) Upgraded performance; (Right) Current performance.

Improved Negate Performance

Similarly, performing a Negate on a part is now instant since they just tag the part rather than recomputing the entire shape history and creating a new instance to represent it.

690x258
Repeatedly toggling the current Negate button can have noticeable lag (right), whereas the updated behavior is always instant (left).

How to use the new beta:

  1. Enable the Beta: In Studio, go to File > Beta Features and check the box for Updated Solid Modeling Buttons.
  2. Restart Studio: You must restart for the changes to take effect.
  3. Insert Parts: Insert a few Parts to experiment with.
  4. Negate a Part: Select any part and click Negate. You will notice the new highlighting style and the “Negate” icon appearing on the right side of the Explorer widget.
  5. Complete the Operation: Use the Union or Intersect buttons to feel how much faster it is.

:warning: Known Issues

Negated parts may sometimes display incorrectly in front of other parts. We are looking into a fix for this issue.

What’s next?

We hope these improvements can help supercharge and streamline your CSG workflows in Studio. These improvements are also an important stepping stone toward enabling solid modeling support for MeshParts. We are excited to bring this capability to you soon!

Please try out your common Solid Modeling workflows and let us know if you find any issues or if you have any feedback.

Happy modeling,
Roblox Geometry Team

121 Likes

This topic was automatically opened after 9 minutes.

OPTIMISATION IS ALWAYS THE BEST

Thanks Roblox. This is really good. OPTIMISATION IS THE BEST

I rate this update a 10/10. How long did it take to make? This is interesting and incredible plus amazing. Performance = Incredible.

39 Likes

This might come in handy for procedural destruction based games!

6 Likes

To what extent are NegativeParts being deprecated? I use them outright instead of normal parts here and there (…I can only think of one spot actually) as a way to mark certain hazards. (Not like there’s any way for players to actually tell, tbh.)

1 Like

These improvements are also an important stepping stone toward enabling solid modeling support for MeshParts.

Any way to get into the early access program for this? I’ve been very interested but don’t know the right ways of getting in touch.

3 Likes

Hey! We are never going to break any existing experience, so in that spirit we won’t remove NegativeOperations. With this update existing NegativeOperations still work as before with the Union button, but there won’t be any way to create them natively in Studio anymore.

4 Likes

Hey! You can sign up for the early access here :slight_smile:

2 Likes

Does this imply you’re looking into resolving the transparent part layering issue or is this a separate issue?

6 Likes

I like this, but how optimized will the wireframes be? That’s my main concern…

2 Likes

Any plans on supporting Performance RenderFidelity on CSG?

1 Like

The goal is to deliver Solid Models (i.e. CSG) through our cloud transcoding architecture just like Meshes, Textures (and SLIM models) are delivered.

When this transition happens, every single Solid Model will get multiple LoDs automatically generated and the engine will be able to smartly select and stream the right one at the right time.

Take a look at this section of the RDC 2025 keynote where we introduced some of these ideas. (Just imagine swapping out Mesh Streaming for Solid Modeling / CSG streaming)

5 Likes

Good thing Roblox has hype men like you to keep them encouraged on every update in these dark times… Keep it up Ronaldo!

1 Like

Oh my god, ROBLOX
I was gonna chop models for my recent module, now its gonna be sooo easier chopping chopped parts in chopped parts.

Omg its going to help @EgoMoose’s portals soo much

You kind of cooked this update roblox, but make sure you dont cook it too much or just chop it by adding age verification in it…

Now add vpf upgrades!!!

1 Like

-- this is, kind of a gross way of just making a part red and transparent. i honestly wasn’t aware negativeparts even rendered in runtime

1 Like

Will this be fixed? Haven’t been able to use Unions in my game for over a year :sweat_smile:


Issue with AssetService:CreateAssetVersionAsync ^

2 Likes

Hey! Thanks for letting us know about this issue. We will look into this!

3 Likes

W upd the specially for mobile

having the + alongside the - is a confusing choice, especially since you have to look over to see the negate icon instead of it just being there. feels really easy to misinterpret a negate as a union at a glance

3 Likes

The part is a union, e.g. the Union:IsA(“UnionOperation”) will return true. I think it is good to convey the type in the explorer. The icon to indicate the negate state might not be optimal, appreciate the feedback!

2 Likes