Bring real world creation to your experience with Constructive Solid Geometry (CSG) improvements [Beta]

Thanks for the reply! I re-read my first sentence and I didn’t mean for it to sound snarky or anything. Apparently at one point a few months ago it was enabled in a release version then shortly after disabled.

Unfortunately yeah I don’t think I’m in a position to give feedback as I haven’t tinkered with CSG but those previews look awesome! Especially with there being no more flicker. UVs or textures being offset due to operations was one thing that really annoyed me

1 Like

Here’s an issue I found with lighting (using the geometryservice beta for operations):
After intersecting a cylinder with a cube:
Screenshot 2024-04-22 205650
Intersecting the two obtains a semi-circle @ 90 degrees
Screenshot 2024-04-22 205745
Duplicating the result, and scaling it on the Y and X axis to form a layer like effect in combination with the originally sized piece:
Screenshot 2024-04-22 205821
Negating the smaller part from the larger, which creates this shape:
Screenshot 2024-04-22 205919
The lighting on the inner face acts as if it has a normal facing the opposite direction (from what I can tell) which illuminates it when a light shines from behind, but doesn’t respond to light emitted towards it. Here is a diagram:


I hope this is a good enough explanation. This only appears to affect the inner curved face of the shape.
Thank you roblox dev team for a great set of tools! I look forward to use this when released.

2 Likes

Hello Creators!

Thank you so much for all your feedback and questions. We are excited to announce that all of this functionality is now out of Studio Beta and you can now publish experiences with these new capabilities!

Our main goal with this release is to get real-world, in-production usage of these APIs so we can further tweak performance and fix any new bugs. At this point, we do not expect any breaking API changes so it should be safe to publish experiences with this new feature set even though performance will improve and bugs will continue to be fixed.

Thanks to your feedback, the following changes and fixes have been made:

  1. Fixed box decomposition which was not matching the visual output of the operation (it was offset to the origin of the CFrame as opposed to the physical center of part). This was causing incorrect culling of certain parts of the scene.
  2. Fixed issue where fully disconnected surfaces were being considered as different bodies. This meant subtracting a sphere from the inside of another sphere would actually create 2 bodies when split apart was enabled.
  3. Fixed interaction causing sporadic crashes during fast substitution updates (related to flicker removal with substituteGeometry).
  4. Miscellaneous small bug fixes

We are still actively fixing a few recent bugs and will push out fixes as soon as they are available but we wanted to get this out to you as soon as possible.

We look forward to all the amazing experiences you will make with these new capabilities. Please keep the feedback coming!

Thanks,
@BelgianBikeGuy, @TravelerUniverse, @syntezoid and @FGmm_r2 on behalf of the Roblox Geometry team

6 Likes

this could make an awesome sculpting game lol

im trying and failing to make a explosion effect using CSG :sob:

This might help: Destruction Using New CSG Beta - #8 by BubasGaming

ive tried spawning parts but i just couldn’t figure it out lol

though thank you anyway for your response

i got the parts spawning correctly
however i cant figure out intersect and subtract to work on it… well ill figure it out soon enough. I hope.

I have found a case where SplitApart fails to separate small WedgeParts when subtracting.
Attached is a repro file with the wedges in workspace: CSG Issue.rbxl (50.2 KB)

Thanks for bringing the issue up. Looking at it

1 Like

i dont know if we are that far ahead yet but if the color changes why cant we change the material too?

1 Like

Hey guys, is there a way to prevent ‘blinking’ while substracting? Like the part which is going to be substracted is have a small delay, and it’s disappers for like 100 miliseconds, can it be prevented? Thanks

The issue with materials is that currently Roblox has a 1 material per part limitation. (just like a 1 texture per part). This is unfortunately not a trivial thing to fix

1 Like

We do have a solution when using the substitute API. unfortunately, there was a bug causing an interaction with asset loading on devices with slow internet. It’s being worked on

Thank you very much, so there’s no bugs in the code/API’s usage?

:IntersectAsync() appears to be crashing when used on any Union or Negate or Intersect, but only when playing in-game. Trying the same operations on those type of parts in studio works fine, if a little slow. CSG Crash - Roblox test place (uncopylocked; press x to form a cylinder)

1 Like

Thank you for reporting this crash, We will look into this.

1 Like

We are working on some improvements to performance and stability for these new APIs. Since you are active users, we would love to invite you to test these changes out on your places to make sure we aren’t breaking anything. To try out these improvements, please use the following sign-up link: Roblox Betas | CSG Performance & Stability improvements Sign-up

4 Likes

We’ve rolled out the improvements for everyone who signed up! Let us know if you run into any issues.

2 Likes