Skip to content

Preset JSON Format

Dave Walker edited this page Jun 23, 2026 · 1 revision

Preset JSON files in the data folder define the parameters used by the shell-building pipeline. Each preset describes the growth path, shell surface, optional chamber septa, optional siphuncle, and rendering settings for one shell form.

Not every parameter is used by every shell. Some parameters apply only to particular growth modes, shell families, or optional features.

Top-Level Metadata

Parameter Purpose
name Human-readable name for the preset.
description Short description of the shell form and its main modelling features.
geometry Broad geometry category used to describe the preset, such as log-spiral, centreline-conical, or conical-helix.
form Morphological form label, such as planispiral, straight, curved, high-spired, or flared.
family Biological or modelling family label, such as coiled-cephalopod, straight-shelled-cephalopod, or gastropod.

growth

The growth section defines the path followed by the aperture as the shell is generated.

Parameter Purpose
mode Selects the growth-path model. Current modes include log_spiral, orthocone, cyrtocone, and conical_helix.
a Initial scale parameter for logarithmic spiral and conical helix growth.
b Expansion parameter for logarithmic spiral and conical helix growth. Larger values usually increase shell expansion more quickly.
turns Number of spiral or helical turns to generate.
points Number of sampled growth positions. Higher values produce smoother meshes but increase render cost.
aperture_mode Controls how aperture size is calculated. Common values are proportional and abutting.
aperture_width_multiplier Scales aperture width relative to the growth path size. Used by proportional and centreline growth modes.
aperture_height_multiplier Scales aperture height relative to the growth path size. Used by proportional and centreline growth modes.
abutment_scale Controls aperture size for abutting coiled shells, helping adjacent whorls touch or overlap.
abutment_height_ratio Controls aperture height relative to abutting aperture width.
length Axial length for centreline shells such as orthocones and cyrtocones.
initial_radius Starting aperture radius for centreline shells.
growth_rate Rate at which centreline shell radius changes along the axis.
curvature Curvature applied to centreline shells. null gives a straight orthocone-like axis; non-zero values curve the shell into a cyrtocone-like form.
taper_mode Controls how centreline shell radius changes along the shell. For example, linear gives a linear taper.
spire_height Height of the conical helix spire. Used by conical_helix growth.
cone_taper Controls how strongly a conical helix narrows toward the apex.

shell

The shell section controls aperture sweep geometry, surface ornamentation, the final aperture lip, and wall thickness.

Parameter Purpose
z_scale Adds vertical rise to the shell when no explicit z_path is generated. Useful for raised or open spiral forms.
automatic_z_path When true, derives vertical rise automatically from aperture height and whorl abutment. Used for high-spired forms such as Turritella-like shells.
whorl_abutment Controls automatic spacing between successive whorls when automatic_z_path is enabled. Lower values increase overlap; higher values increase separation.
aperture_points Number of vertices around each aperture ring. Higher values make rounder apertures but increase mesh size.
aperture_tilt Shears the aperture so one side sits higher than the other. Useful for inclined high-spired forms.
ribbing_enabled Enables or disables geometric ribbing.
ribbing_amplitude Strength of ribbing modulation. Larger values create stronger raised ribs or deeper annulations.
ribbing_frequency Frequency of ribs along the growth path. Higher values produce more closely spaced ribs. In segmented mode this is overridden when segment_to_septum_ratio is active.
ribbing_mode Rib profile. sinusoidal preserves the original smooth ribbing; segmented creates broad annular segments separated by grooves.
segment_to_septum_ratio Optional segmented-mode control that locks annulations to chamber spacing when chamber septa are enabled. 1.0 gives one ring per chamber, 2.0 gives two rings per chamber, and 0.5 gives one ring every two chambers.
ribbing_groove_width Fraction of each segmented rib cycle occupied by the groove. Larger values make wider grooves.
ribbing_groove_depth Relative depth of segmented grooves. Larger values make grooves cut more deeply into the raised annular band.
lip_enabled Enables or disables final aperture flare.
lip_start Growth fraction where the final lip flare begins. For example, 0.90 starts the lip during the final 10 percent of growth.
lip_strength Maximum enlargement of the final aperture lip.
lip_power Shape exponent controlling how gradually or abruptly the lip flare develops.
wall_enabled Enables or disables the inner shell wall surface.
wall_thickness Inset distance used to create the inner shell wall.
inner_surface_colour_shift Colour adjustment applied to the inner shell surface. Negative values darken the inner wall.

chambers

The chambers section controls internal septa. These parameters are used only when chamber generation is enabled.

Parameter Purpose
enabled Enables or disables chamber septa.
chamber_spacing Distance between successive septa along the chamber-placement coordinate. For coiled shells this is based on growth angle; for orthocones and cyrtocones this is interpreted along the shell axis.
septum_rings Number of nested rings used to build each septum surface. Higher values give smoother septa.
septum_depth Strength of septum concavity. Larger values make septa more deeply curved inward.

siphuncle

The siphuncle section controls the simplified tube running through chambered cephalopod shells.

Parameter Purpose
enabled Enables or disables siphuncle generation.
siphuncle_radius Base radius of the siphuncle tube.
siphuncle_taper_enabled Enables or disables tapering of the siphuncle radius along the shell.
siphuncle_taper_power Shape exponent controlling the taper curve when siphuncle tapering is enabled.
siphuncle_min_radius Minimum siphuncle radius when tapering is enabled.
siphuncle_max_radius Maximum siphuncle radius when tapering is enabled.
siphuncle_offset Offset of the siphuncle from the aperture centre. Higher values place it closer to the shell wall.
tube_points Number of vertices around each siphuncle tube ring. Higher values make a rounder tube.
siphuncle_end_fraction Fraction of shell growth over which to generate the siphuncle. This usually stops the siphuncle before the final body chamber or aperture lip.
include_terminal_ring Controls whether a final terminal siphuncle ring is included.
fixed_offset_angle Optional fixed angular position for the siphuncle offset. null allows the offset to follow shell growth orientation.

plotting

The plotting section contains render settings. Presets usually define separate opaque and transparent render configurations using the same parameter names.

Parameter Purpose
opaque Render settings for the opaque shell view.
transparent Render settings for the transparent shell view.

Plotting View Settings

Parameter Purpose
enabled Enables or disables this render configuration.
title Title shown on the rendered Plotly figure.
shell_opacity Opacity of the shell mesh. 1.0 is fully opaque; lower values make the shell translucent.
septa_opacity Opacity of chamber septa.
siphuncle_opacity Opacity of the siphuncle.
width Output image or figure width in pixels.
height Output image or figure height in pixels.
hide_axes Hides or shows the 3D axes.
show_wireframe Shows or hides wireframe-style mesh edges when supported by the plotting path.
viewpoint Named camera viewpoint, such as iso, top, aperture, or presentation.
zoom Camera zoom factor. Smaller values zoom in; larger values zoom out.

Clone this wiki locally