3D Flower Art

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

This Demonstration lets you create interesting flower-like constructions. The projects are constructed from rings of petals.

Contributed by: Karl Scherer (June 2015)
Open content licensed under CC BY-NC-SA



There are 41 projects given. Study them to learn how to use this "3D Flower Art" construction tool.

Some examples look best upside down (to turn object, hold left mouse button pressed while moving mouse).


project Click "project" to select the construction you want to work on. The projects are constructed from ring-like collections of petal-like elements we will call "rings"; see below.

"<",">" Here you select the previous or next project.

spec Click "spec" to choose a specularity. Note that there is only one specularity for each project.

action Option "save ring" puts the data of the currently edited ring into a special nameless file.

Option "restore ring" brings the stored ring data back from the nameless file, thereby overwriting the current data, but leaving the current ring number and active flag the same.

Option "save project" stores your project. Always use "save project" after you change a "ring" description, otherwise you might lose your ring description!

Option "restore project" takes the project back to the state of the last "store project" command.

Option "default project" shows the project with all your changes stripped.

Option "basic project" shows a minimal (nearly empty) project that nicely serves as a working platform for your experiments.

Click "zoom 1," "zoom 1.5," "zoom 2" to zoom in and out of the image (zoom 1.5 enlarges the plot range to 1.5 times its original size; zoom 3 doubles the size of the plot range).

Clicking option "active -> all" activates all rings.

Options "radius -> all", "height -> all", etc. apply the current values of "radius," "height," etc. to each ring.

There are also two options to copy "color 1" to "color 2" and one option that swaps the two colors of a ring.

Option "ring-> all" copies the data of the current ring to all rings of the project.

Option "deactivate others" makes all rings inactive apart from the current one.

"s/r" setter bar Click to save or restore your current project (both also available as "action"; see above).

ring Click "ring" to select a ring structure you want to work on.

cap form B/R/S The choices B/R/S (Butt/Round/Square) describe the end covers of lines and curves. Each ring has its own cap form.

active rings Click one of the 10 toggles to make the selected ring visible. Inactive rings will not be displayed.

radius Here you select the radius of the ring. The petals will be arranged along this ring. Range: 0 to 10.

rot-z Here you rotate the current ring (by the selected amount of degrees) around the axis. Range: 0 to 90.

height Here you select how much the ring is shifted in the direction (up). Range: 0 to 360.

petal Here you select the type of leaf (or building block) for your flower.

petal 1 => line, petal 2 => modified quadrilateral, petal 3 => triangle, petal 4 => cuboid, petal 5 => cylinder, petal 6 => tube, petal 6 => tube, petal 7 => ellipsoid, petal 8 => BSplineCurve, petal 9 => tube around BSplineCurve, petal 10 => tube around BSplineCurve

Details: petal 1 => Line[{{0,0,0},{a,b,c}}], with variable "s" used for the line thickness! petal 2 => Polygon[{{0,0,0},s*{a,b,0},s*{a,b,c}}] petal 3 => Polygon[{{0,0,0},s*{a,0,0},s*{a,c,0},s*{0,b,0}}] petal 4 => Cuboid[{0,0,0},s*{a,b,c}] petal 5 => Cylinder[{{0,0,0},{a,b,c}},s] petal 6 => Tube[{{0,0,0},s*{a,b,c}},{1,0}] petal 7 => Ellipsoid[{0,0,0},s*{a,b,c}] petal 8 => BSplineCurve[{{0,0,0},{a,0,0},{a,b,c}}], with variable "s" used for the line thickness! petal 9 => Tube[BSplineCurve[{{0,0,0},{a,0,0},{a,b,c}}],s] petal 10 => Tube[BSplineCurve[{{0,0,0},{a,0,0},{a,b,c}}],{s,0}] petal 11 => ("kite") Polygon[{{0,0,0},s*{a,-b,0},s*{a+c,0,0},s*{a,b,0}]]


op Here you select the opacity of the current ring. You can select a different opacity for each ring!

amount Here you select how many "petals" are in the current ring.

col1 The "petals" in each ring show a transition from one color to another color and back. Col1 is the first of these two colors.

col2 The "petals" in each ring show a transition from one color to another color and back. Col2 is the second of these two colors.

s "s" is multiplied with the data of the standard "petal" and hence gives you some easy control over the size of a petal. In some cases, "s" is used for purposes other than size; see above under "petal." Range: 0 to 2.

a/b/c Data used to modify the petal; different for each petal type. Range: to 10. Explore!

rx/ry/rz Rotation of the petal around the , , and axes by the given degrees. Range: 0 to 360.

edges You can select whether the edges of the (cuboid, polygonal, etc.) petals are painted (thin or thick, in black) or whether they are not visible at all. The control "edges" has no effect on petal type "lines". Lines can be made thick via the "s" slider.

axes/floor/bg Click "axes" to display axes, click "floor" to show the floor, and click "bg" to change the background color.

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.