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

This is really cool. Two questions though:

  • Is there a planned release date or a “maximum-time-in-beta” that can be given? This is really useful but if it would take i.e a year to release then it’d be good to know so.
  • Is the lighting glitch fixed? I remember previously the lighting on a CSG’d part would ‘freeze’ so, if you used SubstractAsync on a part that was in the shade, the created CSG part would have the lighting baked in so even when moved out of the shade the color/surface wouldn’t change.

There is no official time for this. Just “as soon as possible” trust me we want this in your hands for real asap (hopefully you want it as much as us :slight_smile:

Could you provide an example by any chance? A lot of changes are in progress at it might be fixed or not. Thanks!

1 Like

Hello, this API is incredible but it keeps crashing whenever I stop my game, you can reproduce it by having a Union made in Studio(with the toolbar) and then modifying it at runtime, once you stop the simulation it will crash the Studio application.

Also, I’m wondering if I’m missing something since I really can’t get that “super-fast” calculation when doing CSG operations(like the one in the workshop, the clay-like cylinder that rotates and gets its shape), at first it flickers and then after some operations it just refuses to compute again for like some seconds, I thought warm-start solved that.

Edit: This is a place where while holding your click, it starts to perform a laser-like destruction on the target object, but after some operations, it refuses to compute again. (Also demostrates some shading bug, the crash isn’t usual but sometimes happens, you can trigger it by removing the code in the task.defer and preunion’ing the breakable part)

demostration_csg.rbxl (53.5 KB)

1 Like

hey @gato_todomenso, Thanks for trying it out. The crash bug is the same one as what @Daw588 Reported here. A fix was merged in and should be available for the next release (baring any catastrophic issues of course :slight_smile: )

I’ll also take a look at the other issue reported (in particular the erroring)

2 Likes

Shoutout to these roblox engineers who still care about roblox enough to bring is amazing updates, I really hope in the future we can perform similar operations on meshparts since it would make tons of new things possible like procderually generated meshes and more.

Either way this update is still fire as being able to destroy rectangles, balls, cylinders and wedges and corner wedges is still very cool, cant wait to see fragmentation scripts pop out thanks to this update.

2 Likes

Also adding on to this could we get a gif showing the remeshing algorythms with wireframe rendering on so we can see how much better it generates the geometry compared to the old CSG engine?

1 Like

This is amazing. Please consider making a function to convert it to string and back for saving purposes.

2 Likes

Here’s a wireframe GIF showing the difference without and with incremental re-meshing. Shout-out to @MrCattitude for preparing this so quickly!

inc_remeshing_comp_wireframe_extended

9 Likes

looks cool and all of that but is it laggy?

1 Like

Would you mind explaining what you mean by this? What use case in particular did you have in mind when you made this comment?

1 Like

Try it out! It’s certainly much faster than it was

2 Likes

do you have a experience that i can download and try this. I’m to lazy to script and all that

1 Like

sure! In the post there are 4 examples with varying complexity (with modules scripts that can be copied straight out for the most part)

(Examples 1 is very trivial. 2,3,4 is really where you’d want to look for performance)

2 Likes

If you could convert a union into a string, or number, or table, or something like that… we could pass it through MessaingService, DatastoreService, MemoryStoreService, RemoteEvent, and more. If this was to be added, it should be generalized to include all instances.

Huge ask though, I don’t really need this. Just explaining what he meant!

1 Like

I still don’t understand what incremental remeshing is. It just looks faster. Can anyone explain it to me?

1 Like

My guess is that it recalculates a mesh’s triangles to remove redundant triangles and make them more efficient and cost less memory.

(edit): Staff replied and said that it merges coplanar triangles into one. That keeps the speed for the next union consistent, compared to when triangles kept adding up.

1 Like

Jeez, No wonder why old CSG was so laggy, it generated so much uselless geometry, This new CSG engine literally looks like it doesnt even generates any extra geometry at all, Meaning it shouldn’t even slow down over time because the geometry never stacks up.

This is so cool

1 Like

The original didn’t focus on wireframe or looks, it was comparing speed…

1 Like

The original video compared speed, the one I replied to compared the wireframes. The new one is tons simplier which makes it faster.

2 Likes

Wonderful update. I do wonder why we can’t have a built-in part type for cones though, as having to create a CSG cone is annoying. However, the new system should make it less annoying.

2 Likes