Create a Rectangular helix. Picture an Auger or a Conveyor Screw

Conveyor Screw | Babylon.js Playground (

I can’t figure out how to make the helix stay “normal” to the pipe. Picture you are modeling an auger, or a conveyor screw. The helix is a rectangle that wraps around a pipe, and the rectangle’s height is always 90° to the pipe. Right now, it seems to keep the original orientation of the shape and doesn’t rotate it correctly as it goes along the path around the pipe. I have attached an example out of our cad program that I am trying to re-create. The second image is where I left off. I know the pipe isn’t position correctly and not long enough, but that part I can fix.


something like this ?

1 Like

Yes!..but I need it to not just be a surface, and rather have thickness. Do you have to create each surface individually? Full disclosure, I am trying to see if Babylon is a good fit for my program. Currently we do 2D sketches within the program, and it works well, but would like to do 3D.

If you go with custom mesh, yes, you will have to create the thickness. meshes are only composed of triangles.
without triangles, you can try SDF : Shader - Shadertoy BETA

But it will come at the price of rendering performance and limitation in its extension.

Ok, thank you for the quick responses. I will see if I can figure out how to create the 3 other meshes (outside diameter thickness, inside diameter thickness, and the easier one because its just an offset of the one you provided, the other face).

Again appreciate the assistance on this!

1 Like

That could be a great use of NGE :slight_smile:
Node Geometry | Babylon.js Documentation (

Unfortunately I’m a bit of a baby when it comes to Babylon and 3d modeling with code. Used CAD packages my whole life, but doing it with math and JavaScript is new.

I don’t know how to use NGE, the thing I’m trying to figure out is how to essentially cap or close these 2 faces together to make 1 enclosed shape. I figured I might be able to make a ribbon that went down the inside, and outside. But keep getting an error that subtract isn’t a function…even though I’m not calling that function directly. I’ve commented out the portion that was giving me the error.

HelixV2 | Babylon.js Playground (

What about something different like using extrusion?
Extruded Shape Examples | Babylon.js Playground (

like this ?


That one will work for the helicoid flighting since it has a wide bottom. That’s awesome! thanks!

Try this: go to L-system explorer
Select the text in the top box and paste in the text/L-System spec below
Uncheck Multi-Turtle? → doesn’t work otherwise.
Click Reset-and-Draw.
This is all done with ExtrudeShapeCustom, and the shape is defined by the points in the D → production. You can save the mesh as a glb.

it should look like this:

#define CENTRAL_ANGLE 20
#define STEPSIZE 0.5
#define ITER 50
derivation length: ITER 
axiom: ;(1)CSH(ITER)}
S -> @#('ctr'){(0)
H(l) : l==0 --> *
H(l) : l > 0 --> \(CENTRAL_ANGLE)F(STEPSIZE)H(l-1)
C --> [@H@DsD@De('ctr')]
D --> @m(-1,-0.1,0).@m(-1, 0.1,0).@m(1,0.1,0).@m(1,-0.1,0).@m(-1,-0.1,0).