Close × RESEARCH → WORKING PROTOTYPE
Shape first. Light separately. Inspired by Cumulus cloud modeling from images based on VAE-GAN , Zhang et al., 2021. Figures 8–11 compare solid forms, voxels, rendered clouds, silhouettes and side views.
What the paper does The authors hand-modelled 200 clouds in Blender, converted them to 64³ voxel grids, and trained a VAE-GAN shape model. A second image encoder predicts the learned shape representation while the decoder stays fixed. Their results primarily evaluate synthetic rendered images.
Branch-guided cloud design Start with a point, a segment, or two to four arms joined at one centre. Four arms use tetrahedral directions, forming a tetrapod. Edit length, azimuth, elevation and thickness independently, with an independent cloud character on each arm. The starting tetrapod mixes Cumulus congestus, Cumulus humilis, Stratocumulus and Cirrus fibratus.
Names and visual traits come from the WMO International Cloud Atlas . Irregular overlapping crowns, low puffs, broad rolls and swept strands are our geometric interpretations, not algorithms from either paper. Cirrus is thickened and connected for a solid mesh. Orienting all these characters along branches is an artistic hybrid, not a meteorological classification of the resulting object. Earlier billowing / smooth / tapered controls were generic geometry, not cloud types.
This is our procedural reinterpretation: an explicit 3D skeleton controls the outer surface while lighting remains separate. The 2010 paper motivates inspectable geometry-guided construction; the 2021 paper motivates separating shape from appearance. Neither paper defines this branching system, and no trained neural network is used. The photo modes are separate experiments; photos are not automatically converted into branches.
The objective is one concrete cloud in a multipart mould. This version creates the cloud mesh and saves its skeleton; it does not generate mould pieces or certify demoulding.
New: Dobashi 2010 cumulus method The new photo mode implements chroma selection (Eq. 1), a harmonic sky solve (Eq. 2), cloud/sky separation (Eq. 8), Euclidean distances and medial maxima, and opacity-weighted thickness optimisation (Eqs. 11–12). Front and back are mirrored around the image plane.
Adaptations: manual sunlight colour replaces the paper’s RGB search; the photo is processed at 128² resolution in linear RGB; neighbourhoods, numerical tolerances and thickness clamping are implementation choices. We use an orthographic image plane and treat T as total thickness. This exports the outer shell, not the paper’s internal Perlin-noise density or a scattering simulation. The cirrus texture and altocumulus density branches are not implemented.
Dobashi et al. (2010) ↗
Original prototype modes The original modes are procedural approximations, not the trained VAE-GAN. Build mode blends ellipsoidal masses into one scalar field. Photo mode extracts a silhouette, uses distance to its edge to infer thickness, and lets you adjust depth and asymmetry. Surface ripples add geometric detail. Marching tetrahedra extracts the visible mesh.
Hidden surfaces are designed, not recovered. The cross-section and voxel view let you inspect volume independently of lighting. A photo's dark areas are not automatically treated as holes or depth.
Two different approaches 2010: explicit rules and image analysis; no training dataset. Photographic colour and inferred transmission influence thickness. Mirrored backs can look unnatural from the side.
2021: a learned 3D shape prior trained from 200 modelled clouds; a separate image encoder tries to recover that representation independently of lighting. It can infer asymmetric side and back geometry, but needs the trained network and depends on its training examples. That neural model is not running in this app.
For fabrication STL contains the displayed surface scaled to your chosen width in millimetres. Exports need a slicer/manifold and minimum-thickness check before manufacture. Fine detached features and mould undercuts need design review. Stone colour is only a preview.
Read the original paper ↗