Geometry nodes for non-destritive roads/race tracks?

I occasionally think of making a race track in Blender. There are some techniques I already know of, such as making a plane with a tarmac texture, then using the array and curve modifiers. Another one is to use a curve for the track layout and anther curve as a bevel object which gets extruded along the first one. I prefer the first method because the texturing is already done and the quads/tris are evenly spaced.

They both have some drawbacks:
Changes in cross sections are hard to implement while keeping other things non-destructive. Cross section changes would be useful for changes in camber/banking, or to make a bump or change the width. So far, using the first method, the only way I can think of is to apply the array modifier and then manipulate the vertices (proportional editing helps). Tweaking those changes is very difficult (because they’re not non-destructive), especially once further changes have been made and the undo-stack has subsequent actions in it.

I’ve seen a few videos about geometry nodes, but I don’t have a 100% understanding of what they’ll be capable of.

E.g. Here’s an old program specifically designed to make race tracks: https://www.youtube.com/watch?v=Xw3HyPYGRn8 (there’s successor called Race Track Builder but the cross section videos are more complex)
A curve is created (bezier or cardinal) and a track mesh is generated from a default cross section (defines how the mesh is subdivided laterally), with a ‘panel length’ used to subdivide it longitudinally. What’s good is that additional cross sections can be added anywhere, and moved, with the shape of the track smoothly blending between the two cross sections. They can be deleted too, making the whole process close to being non-destructive.

Additionally, each cross section has its own panel length, so it can be reduced in some sections, e.g. for tight corners, to allow more detail when necessary.

Does anyone think the upcoming geometry nodes feature could do something similar? It doesn’t need to be as graphical as we see in the video, but something non-destructive would be great.

1 Like

I had an old add-on for road generation using a curve, but it’s been ages since I polished it at all. Indeed, one of my hopes for geometry nodes was to recreate this in node form instead of python. https://github.com/ogbog/addRoad

At some point I think it will be doable, that’s the kind of job for the tool.
But for now even if we can already do cool stuff it’s really the beginning of the project.

Now the main focus is aimed at scattering and set dressing, you can do a bit of procedural modeling but it’s very limited at this point. The overall design may change a bit also…

Maybe in a few release this would be possible, there are good example of similar stuff in houdini : https://www.youtube.com/watch?v=HjZatCtgZA8