In-experience Constructive Solid Geometry (CSG) APIs now available in published experiences [Beta]

New hot Roblox update, thats cold

13 Likes

:happy3: This is a good way to step in creation of the physics game of Roblox.

One thing we all want is an easy documentation:
All we have right now is just the API documentation with a pretty fast exemple.

We should have a documentation based on this API explaining what does what, how to use it & with various exemples.

This will drastically help a lot of developers whose games are based on physics.

Keep the updates coming Roblox. :happy1:

23 Likes

Awesome! CSG is becoming more and more viable for real-time usage in many different situations. Thank you Roblox! :happy4:

11 Likes

“Thats one small step for physics, one giant step for developers alike!” — Me


Physics is really fun to play around in so having more physics building blocks to play with will keep me occupied for months to come! I can’t wait to use this to get home :wink:

I’m interested, how did you guys think about making this in the first place?

15 Likes

This is awesome!
I have one huuuge question though.

Having lots of unique geometry often causes a drastic increase in draw calls and whatnot.
Are there any ways or methods for optimizing this?

I could imagine in a destruction game where you want debris to lay around for a long time it’s eventually just gonna lag because of the draw calls.
High poly count might be unlikely since modern hardware can handle it pretty well nowadays but it’s still a very minor concern.

11 Likes

Will the lighting bug when using the SubtractAsync function ever be fixed? I’ve reported it many times since 2022 and haven’t received much information. In fact, I’m not the only one, as shown in this post. It’s amazing to see improvements being made to CSG while ignoring existing bugs with the old and even the new API.
bug_report.rbxl (47.9 KB)

11 Likes

In all honesty, I’ve been waiting for BasePart:GetClosestPointOnSurface for a while now as well as plenty of other folks, and I’m glad it’s been released to the public. This’ll accelerate my workflow even more! :smiley:

11 Likes

We have more upcoming fixes and performance improvements. As a proof we actually have a working internal fix :slight_smile:

Ceiling Material changed to plastic for better visibility

Current Issue:

Fixed:

26 Likes

To add onto this actually, may we ever get to see accurate points inside a MeshPart and union operations with CollisionFidelity.PreciseConvexDecomposition?

12 Likes

You guys are giving us good updates. I am skeptical that someone replaced the O.Gs now.

:face_with_raised_eyebrow::face_with_raised_eyebrow::face_with_raised_eyebrow:

10 Likes

Major upgrade from the CSG V1 code!

6 Likes

If only the RopeConstraint had Physics like the old Demo from a long time ago had and wouldnt go through Parts

6 Likes

Oh come on, don’t tease me! There’s a laser gun in your inventory and you didn’t even use it for this demo?!

Jokes aside, being able to protect Constraints inside of affected parts is a huge step forward. Will this also apply to other Instance types, like decals, lights, and audio?

3 Likes

It’s Time to burn computer! LET’S GO

4 Likes

Does the CSG engine have any sort of parallelization support? Or are we forced to run each operation in serial?
I think these are 100% great improvements though i still don’t exactly feel confident in using the CSG engine past simple infrequent operations. I still fear that frequent complex operations will lag out to even freeze the server or even crash the server outright due to some sort of internal CSG errors. While i do understand that these issue’s aren’t exactly easy to fix for this kind of system i do also dislike the fact that there aren’t any specific ways we could properly optimize these things ourselves (like running the CSG operations in parallel) nor could we change some sort of precision/accuracy value in order to save time and resources for simpler operations that don’t require maximum precision. Right now sadly the CSG system is the only real option most developer’s have when it comes to real-time geometry manipulation within their experiences. While DynamicMeshes for example are a thing, theire still in beta and even then their use is mostly delegated to small niche things (plus the fact DynamicMeshes use their own specific instance rather than letting you throw this system any BasePart instance).

9 Likes

Anchord, WeldConstraint. What do you expect?

4 Likes

What did he use in the video for those items to break? Can that be applied to glass for realistic glass breaking too?

3 Likes

Has the engine been made faster in any way? Such as if you keep subtracting/adding to the same part, it doesn’t get so slow the more you do it.

5 Likes

Yes, through Incremental Remeshing. There’s an example in the beta post!

6 Likes

The new API is really cool, but I wish it had a way to preserve attachments that aren’t used by physics constraints. It’s very challenging to properly preserve attachments used for effects like beams, particle emitters, and scripts since they go away with the original part.

6 Likes