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

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

is this form going to open again in the near future? I would like to try but didn’t see this

2 Likes

@h_vcn Honestly, we’re looking for a very quick turnaround. If you want/need to test immediately, feel free to shoot me or pho01proof a message with the place. Otherwise, we’re trying to look at less than a 2 week turnaround

P.S. That’s a goal assuming nothing unforeseen happens

4 Likes

CalculateConstraintsToPreserve doesn’t seem be taking velocity into account, causing constraints to be removed when they shouldn’t be.

2 Likes

@JLW1009, thank you very much for sharing!
May I ask if you could describe or share a place?

1 Like

It’s pretty easy to replicate on the Simple Tools place, you just have to create enough motion on the part so that the attachment moves by more than the tolerance in one physics step.

1 Like

So I was messing around and found this peculiar glitch(?) where a model containing a humanoid does not replicate new geometry to client. Idk if it is a bug or intended behavior or if there’s some extra coding needed to update the union

Video example: https://youtu.be/H8Upw5XwXqo

1 Like

There’s an issue where scaling PartOperations doesn’t apply when using GeometryService In-experience. I remember seeing someone post about this a while back but I can’t seem to find the post.

1 Like

Hello!

I’m having a few issues with the new GeometryService API currently since sometimes when I try to split apart an object with SubtractAsync and SplitApart enabled, it’ll act like it was cut but the parts wont separate unless it gets cut again. The part does not have any constraints. (This issue only happens sometimes, so not guaranteed)

Another issue I’m having is that when I cut a part in half, it won’t keep the attachments no matter what I set the tolerance value to, unless it’s connected to a constraint.

Most of the code used to test this was derived from the rbxl files you guys provided for us.

Hi @thom463s,
We just released a bunch of updates that fixed a bunch of issues (along with some performance improvements).

To make sure i understand the issue with the attachments without constraints. You’re adding an attachment that does not have any constraint attached to it but you want it to propagate also and currently it’s not doing that?

~BelgianBikeGuy

Edit: More CSG Updates

I apologize for the late reply, apparently my message was saved as a draft instead of sending it.

Yes.

To explain more clearly;
If you add an attachment onto a base part without it being connected to any constraints, it won’t persist or stay after you perform an operation on it (I used SubtractAsync with SplitApart enabled).

The table CalculateConstraintsToPreserve returns will only return attachments that are already connected to a constraint. This behaviour probably makes sense given the name of the method but if attachments could be preserved without the need of a constraint, it would be very convenient.

Hey @thom463s,
We’ve identified the issue, agree it should behave as you described and have a fix ready for it, it should be out soon ™ pending QA and release schedule.

~BelgianBikeGuy

1 Like

On an unrelated note, I’ve managed to make some cool demos with this API. I’m planning to use it for other aspects in my game since my game is fully centered around customization and physics.

I’m glad that we are finally getting some more support for CSG-related features.