gifProfile Editor


Custom profiles are enabled by the ‘Custom Profile’ button on the ‘Perturb Slices’ panel:


To edit a custom profile, click the ‘Set...’ button. This brings up the Profile Editor window.


As you can see, the profile is formed from bezier curves; you can adjust the curves manually or by Morphers...

Manual Adjustment

Drag on individual anchor points (blue squares) or control points (round handles). If ‘Custom Profile’ is ON, (yellow light), the geometry is rebuilt when you release the mouse button.

Morpher Adjustment

Use the Morpher sliders to adjust control point angles and lengths. The morphers target all control points simultaneously. This allows symmetrical modification of the profile. The morph actions are Mirror, Twist, CP1 and CP2. These function just like they do in my 2D Java application ‘Griselda’. If ‘Custom Profile’ is ON, (yellow light), the geometry is rebuilt when you click Apply.

All active perturbation layers are applied to the custom profile. Thus a profile can be further modified by sine wave deformations.

Mode Menu

Note: the Profile Editor menu is not shown in the following screen shots...


The bezier path is an exact representation of the swept profile. For example, here is the basic form of the Japanese Wonder Shell with its literal profile and sine-wave pertubation in Stacks



The bezier path does not depict a literal representation of the swept path. Instead, the profile radii are used as magnitude vectors to scale the involute radii. It’s rather like a circular graph, where radii lengths represent y values. Thus when adjusting a profile in magnitide mode, think of ‘distance from profile center’ as the magnitude factor. Click 'Draw radii' to see the profile radii, one for each slice vertex. This mode might seem counter-intuitive at first, but it soon becomes apparent that this is an efficient way of creating complex bevels and folds:



Stacks: ONE_PHASE_ZERO_TO_ZERO Amplitude: 0.045 Manual f(x) interval: 45

Slices: ONE_AND_A_HALF_PHASE_DOUBLE_PEAK Amplitude: 1.525 Distribute

Sample by curve length

Leave this menu checked to distribute vertices evenly on the bezier curve(s).

Perturb along profile normals   (Literal profiles only)

When this menu is checked, perturbations are extruded along the curve normals, rather than along the radii vectors. The result is most noticeable at anchor points which form 'seams' in the extruded profile. Remember that the number of slices determins the number of profile vertices, so change the number of slices if the f(x) interval does not give the required symmetry. You can see curve normals by checking the button 'show normals'. The normals are drawn in red. In this example, the number of slices was changed until a vertex appeared at each 'tip' of the star.


NOTE: If 'Perturb along profile normals' is checked, and a literal profile is further modified by Distributing in Slices, the profile will obviously change; the result is that custom profile normals no longer represent the true normals of distributed profile. In this instance, elect to uncheck 'Perturb along profile normals' and Whelk will perturb along the radii instead. This is on my “to do list”.

File Menu

Save and Load

To save a custom profile use the menu ‘File->Save profile’ in the Custom Profile Window. Profiles are saved in the Data/CustomProfiles directory and have a ‘.cpr’ file extension. When you open a custom profile, the profile view updates and the model is rebuilt - but please ensure the toggle button ‘Custom Profile’ is ON or you will not see the changes.

Whelk ‘.cpr’ files only save profile data; they do not save generator information such as trochoidal shift, or the cotangent alpha value. This is so you can apply different profiles to the same generator. Various test profiles are the Data/CustomProfiles directory ready to load. For example, load the profile called 'ShellTest_1.cpr', then try using these Manual values for the generator:

Stacks: 840
Slices: 80
Alpha: 80.5553877 or Cot alpha: 0.1663490
Scaling constant 0.0050
Stack size divisor: 26.0
Trochoidal shift: 1.1
Profile radius factor: 0.630

Remember that the smaller the cotangent of alpha, the tighter the winding, and the more stacks required to build up the form.

Increase the number of slices to increase the resolution of the swept profile.