

Tip:
There are various ways to approach fuselage modeling depending on your specific requirements. For more advanced control, consider exploring detailed parameterization schemes for design variants or cubic Bézier curves for precise curvature management.
There are various ways to approach fuselage modeling depending on your specific requirements. For more advanced control, consider exploring detailed parameterization schemes for design variants or cubic Bézier curves for precise curvature management.
- Define guide splines for the top, bottom, and side profiles.
- Establish a central axis and calculate distance fields from each spline.
- Generate fuselage surfaces using conic sections.
- Apply bounding boxes and boolean operations to create the final geometry.
1. Guide Splines
We’ll begin by creating the top, bottom, and side splines to guide our fuselage surfaces. These will define the fundamental shape and proportions of our aircraft body, establishing the overall silhouette from multiple viewing angles. Think of these splines as the wireframe skeleton of your fuselage—together, they create a three-dimensional cage that will guide your surface creation.
2. Distance from Central Axis
After creating our side, top, and bottom splines, we’ll establish a Central Axis that represents the centerline of the fuselage. We’ll use the x-axis as our longitudinal reference line.



Transcript
Transcript
After creating our side, top, and bottom splines, we’ll want to set a central axis that represents the centerline of the fuselage. We’ll use the x-axis as the vector that’ll drive this.Next, we want to determine the difference from the axis that each of our curves are. We’ll use the Distance to Curve from Axis block where we input our curves, our central axis, and the perpendicular direction we want to measure. So for our side spline, we’ll measure along the y direction, which will give us a distance that looks something like this. I’ll change my colormap on my Field Viewer to implicit and add our isolines, and I get this field as my result.I’ll do the same thing for my distance to top and my distance to bottom spline, making sure to adjust my direction for each of them. Note that for the top curve, we’ll measure our direction in the positive Z. And for the bottom, we’ll measure in the negative since the bottom curve will fall underneath our central axis.
3. Conic Sections
Now that we’ve established the distance fields from our Central Axis, we can feed them into Conic blocks to generate the top and bottom surfaces of our fuselage. The conic surface creates smooth, controlled blending among three defining points, making it ideal for aircraft fuselage geometry. We’ll use Vector Field from Components blocks to define Points 1, 2, and 3 of our conic. For the Bottom surface:- Point 1 uses our distance to side field as the X component (with Y and Z at zero)
- Point 2 places the distance to bottom field multiplied by -1 in the Y component to position the surface below the XY plane
- Point 3 mirrors Point 1 by multiplying the Distance to Side field by -1 for the X component. Setting the Rho parameter to 1 creates a circular arc between these points
- Coordinate Space defines the X, Y, and Z reference frame for the entire operation.



Transcript
Transcript
Now that we’ve established our distance fields from our central axis, we can feed them into Conic blocks to generate the top and bottom surfaces of our fuselage. To do this, we’ll drive Points 1, 2, and 3 with the Vector Field from Components blocks. For the bottom surface of our fuselage, Point 1 will be a vector field whose X component is the distance to side field we evaluated in the previous section. Our Y and Z will remain at zero.For Point 2, our X and Z will be zero, and our Y will be the distance to bottom field multiplied by -1. This will ensure that our surface falls underneath the XY plane in the negative Z direction. And for Point 3, we’ll use the mirrored version of our distance to side. So for our X, we’ll use a Multiply block with our distance to side and -1. We’ll again leave our Y and Z at zero. Our row can be any value between 0 and 1, so we’ll set it at 1 in this case. Finally, add a coordinate space for our X, Y, and Z. We’ll just pull planes from our frame variable that looks like this.Viewing the field of this bottom surface and adjusting the field viewer size and center, we can view our resulting distance field. This is going to establish the bottom surface of our fuselage. We’ll follow a similar setup for our top surface, again pulling in our positive and negative distance to side. Instead of our distance to bottom in our Point 2, we’ll use our positive distance to top. We’ll use the same coordinate space and see this resulting field.
4. Bounds
Now we’ve established conics to represent the top and bottom surfaces of our fuselage. To convert these distance fields into implicit geometry, we’ll establish bounds and use a series of booleans to isolate and union our fields. We begin by generating a bounding box that isolates our fuselage geometry. We will do this by combining the 2D bounding boxes from our Side and Top or Side and Bottom splines using the Bounding Box Union custom block below. This outputs a Quarter Bounding Box whose properties we then use in a Box from Corners block to generate a Full Bounding Box.


Transcript
Transcript
Now we’ve established conics to represent the top and bottom surfaces of our fuselage. To convert these distance fields into implicit geometry, we’ll establish bounds and use a series of boolean operations to isolate and union our fields. We begin by generating a bounding box that isolates a certain portion of our fuselage.We’ll isolate these portions one quarter at a time. Since each of our splines lies on the XY and the XZ planes, the side and the top, and the side and the bottom splines, will generate 3D bounding boxes with each of their 2D bounding boxes connected to one another. If we were to take this quarter bounding box and repeat it in each of our four quadrants to make a full bounding box, we could take that bounding box and feed it into our final body to generate our fuselage.But say the span of our bottom spline is actually larger than the span of our top spline. In that case, our full bounding box wouldn’t actually capture the entire geometry we want to create. Therefore, we can use an If-Else block to create our ideal bounding box. To do this, we can drag the span in the Z direction from the top and the bottom splines that we created. These will exist in our properties under Bounding Box Span and Y and Z.We make these into variables for visibility and we can feed them into a Greater Than block to output a true or false for our span condition. We feed that boolean output into our condition in an If-Else block. Then if our top spline has a larger span in the Z direction, we output a bounding box in our top quadrant. And if our bottom spline has a larger Z-span, we output a bounding box in our negative Z quadrant. Since right now our top spline is larger, this If-Else block will output our top quadrant.We’ll use another If-Else block with that same span condition to then output our fully mirrored box. Our top spline being bigger, and we’ll take that quarter Bounding Box Max Point and generate a second point that outputs this box from corners.If instead of our top spline having the larger Z, our bottom Z were larger, giving us a false span condition, our quarter bounding box will output our bottom quadrant, and our full bounding box will look like this. We set that full bounding box by taking this point from our quarter bounding box and generating a second point using math blocks and our quarter bounding box properties.Then in our final fuselage variable with our conic field set as well as our bounding box, we can use a Boolean Intersect block to intersect the fields of our top conic and the negative of our bottom conic. Scrolling up in our workflow, we can do these fields. The top from the side.I’ll turn my transparency on so we can view our fields. Scrolling up, we can see the field of our top conic. I’ll adjust its size and view it from the side. And the bottom conic will look like this.Viewing the negative of its scalar field, we see a field that looks like this. So if we intersect these two fields, we end up with this. Outside of our design space, we see these overlapping fields. So our last step is intersecting this field with our full bounding box that we created above. That generates this geometry which is a fully enclosed negative field that gives us our final fuselage.

