What you are actually buying
The add-on does not claim the result is clean — it measures it and prints the number. Press Rebuild and you get a line like: "241 dates · 18 shamareekh · ~1.08M tris — Clean, closest 0.11 mm". Every date is tested against every neighbouring date, every branch and every woody knob, using a sphere-chain proxy measured from the real generated geometry before every solve. When a branch is genuinely over-subscribed the solver shrinks the crowded fruit — as happens on a live bunch — then drops what still will not fit, and tells you how many.
There are no scanned meshes forced on you: every date is generated in Geometry Nodes — a quad sphere pushed onto a superellipse profile you control with Length, Width, Aspect, Stem and Tip Roundness, Belly, Bend and a Stem Dimple. The skin is a stack of layers you build yourself — twelve texture types, any order, as many as you want. The dried cap at the stem end is real geometry, built per bunch and seated on that bunch's own fruit, so it can never sink into the date whatever shape you give it.
Installation — step by step
- Download date_palm_pro.zip from Gumroad — do not unzip it.
- In Blender go to Edit ▸ Preferences ▸ Add-ons.
- Click the ▾ arrow at the top right of the list, choose Install from Disk, and pick the .zip.
- Tick the checkbox next to Date Palm Pro.
- Back in the 3D viewport press N — you'll find a tab called Date Palm.
- Upgrading from an older version: remove the old add-on first, restart Blender, then install the new zip.
How to use it
Your first bunch
- Add ▸ Mesh ▸ Date Bunch builds a full arjoon. Single Date gives you one fruit on its own. Date Pit drops the stone as its own object.
- Everything after that lives in the Date Palm tab of the sidebar (N): the variety menu at the top, then the Rebuild button with the live readout under it, then the collapsible sections.
- Pick a variety from the menu and press the import icon beside it — a variety carries the whole shape, the skin layer stack and the material, not just a colour.
- Set the structure first (shamareekh count and lengths) before you build the rig — changing it afterwards rebuilds the deform bones and loses their animation.
- Live Update is on by default: dragging re-solves only once you let go of the slider, so the interface stays responsive. Turn it off and use Rebuild by hand on heavy bunches.
- Start at a low detail level and raise it only for the final shot — a bunch carries hundreds of dates, and switching the level is instant and needs no rebuild.
- Rig ▸ Build Rig adds the armature, then parent CTRL_carry to the character's hand with Child Of. Weights are read out of the generated geometry, so there is no weight painting and nothing to bake.
- Save Preset writes this bunch's shape, layer stack and material as a variety of your own, as JSON. It appears in the Variety menu in every file you open afterwards.
Every parameter in the panel
A complete reference for version 1.3.3 — every button and every slider in the Date Palm tab, in the order they appear, with the default value and the range.
The top of the panel8
The things you touch most: the variety, saving, the Rebuild button, and the live readout under it.


- Variety
- The variety menu: 38 varieties from the Gulf chart, then any preset you saved. A variety is not a colour — it carries colour, gloss, wrinkle depth, translucency, fruit size, plumpness, how two-tone it is, and the stage that variety is normally sold at.
- Apply Variety
- Loads the variety's fruit shape, skin layers and material. Note: it replaces the current layer list entirely.
- Save Preset / Delete Preset
- Saves this bunch's fruit shape, skin layers and material as a variety of your own, available in every file you open afterwards. The button beside it deletes the selected user preset.
- Shamareekh
- The number of secondary branches, repeated at the top because it is the number you change most. Zero gives a single date.
- Add Branches / Clear Branches
- Switches between a single date and a full bunch in either direction, keeping the fruit's shape, skin and material.
- Rebuild
- Re-solves the bunch. A star appears on the button and it turns red when what you are looking at is stale relative to your settings.
- Live Update
- Re-solves automatically a moment after a structural setting changes. The solve is deferred until you stop dragging, so a slider stays responsive. Turn it off on heavy bunches.
- القراءة الحيّة / The readout
- The lines under the Rebuild button are re-measured on the actual generated mesh every time: how many dates, how many shamareekh, the approximate triangle count, then either "Clean" with the closest surface gap in millimetres, or the number of intersections and the worst one. It also reports how many dates were dropped and how many were shrunk to fit, and warns you when the rig no longer matches the bunch.
Detail3
How heavy the bunch is, before anything about how it looks.


- Detail (LOD)
- Detail of each date, in vertices: Hero 98,306 · High 24,578 · Mid 6,146 · Low 1,538 · Draft 386 · Proxy 98. Switches live, with no rebuild. Because the fruit is instanced, the count in the panel is what the renderer sees, not what the file stores. The cap and the knobs follow the fruit down.
- Stalk Sides
- Cross-section resolution of the arjoon and the shamareekh. Five or six is plenty for a background bunch.
- Knob Size
- The size of the woody cups the fruit sits in.
Structure13
The skeleton. Set it before rigging, not after — changing it later rebuilds the deform bones and loses their animation.


- Shamareekh
- Number of secondary branches. Zero gives a single date.
- Seed
- The random seed for the whole bunch: how the shamareekh are distributed, their lengths, and where the fruit sits. Change it for a different bunch with identical settings.
- Arjoon Length
- Length of the main stalk.
- Arjoon Thickness
- Thickness of the main stalk at its base — the diameter, not the radius.
- Arjoon Bend
- How far the main stalk is bent over by the weight it carries. Zero holds it horizontal.
- Head Spread
- How much of the arjoon the shamareekh emerge along. Small values give the tight whisk-shaped head of a real bunch; large values string them out along the stalk.
- Shamrookh Length
- Length of one branch.
- Shamrookh Thickness
- Thickness of one branch — the diameter, not the radius.
- Length Variation
- How much the branches differ from one another in length. Zero makes them all identical, which never happens in nature.
- Droop
- How far the shamareekh hang down.
- Spread
- How wide the fan the shamareekh form is.
- Auto Widen
- Grows the fan as more shamareekh are added, the way a real bunch does. Turn it off to keep the size fixed — but expect crowded fruit to be shrunk or dropped instead.
- Stalk Smoothness
- How many segments run along each stalk: how smooth its curve is.
Fruit7
Which knob sites carry a date, and how big it is.


- Fruit Density
- Fraction of knob sites carrying a date. Zero leaves realistic bare branches — the knob sites exist along the whole shamrookh whether or not a fruit sits on them, exactly as on a stripped strand.
- Max Dates
- A hard cap on the fruit count. Zero means no cap.
- Knob Spacing
- Spacing of the woody cups along every shamrookh.
- Fruit Start
- How far along each shamrookh the fruit begins.
- Pedicel Length
- The offset from the knob to the date's stem. The shipped knob is 4 mm tall, so this seats the fruit in its cup. It is real geometry and is collided against, not a visual cheat.
- Date Size
- Overall fruit scale.
- Size Variation
- How much individual dates differ from that size.
Gravity3
Fruit hangs. It does not float radially off the branch.


- Gravity
- How hard the fruit is pulled down. It swings around to the underside of its shamrookh and hangs vertical, as far as its neighbours allow. Zero keeps the fruit radial.
- Hang Limit
- How far an unobstructed date leans downward. Real fruit sits on a short stiff pedicel and keeps pointing largely outward, so this is a lean, not a free hang. Pushing it near 1 collapses every date on a branch into the same space and the solver has to discard fruit.
- Rest Droop
- How far each date starts tipped away from radial, before gravity and its neighbours settle it.
Spacing5
The part that makes the guarantee true.


- Clearance
- The guaranteed gap between neighbouring dates.
- Knob Play
- How far a date may swing around its own knob to clear a neighbour. Small values keep the botanical spiral exact; large values let the solver clump the fruit.
- Max Push Out
- How far the solver may push a date outward to clear a collision.
- Solver Passes
- The iteration cap. The default covers the heavy case of 357 dates on a widened bunch.
- Verify Spacing
- Re-runs the ground-truth test on demand and prints the result. Every date is bounded by a chain of five spheres fitted to the shipped mesh and verified to contain it at every LOD with zero protrusion — a capsule cannot bound a blunt-ended date; the tightest one that fits needs a radius larger than the fruit's own half length.
Look1
A deliberately short section: the variety and the saved presets moved to the top of the panel because they are what you reach for most.


- Make Material Unique
- Gives this bunch its own copy of the materials, so your edits never affect another bunch and are never overwritten. Press it before opening the shader if the scene holds more than one bunch — the panel warns you itself when a material is shared.
Fruit Shape9
The shape of a single date. A quad sphere pushed onto a superellipse profile — no scanning, no fixed mesh.


- Length
- Length of the fruit. The referenced varieties span 34 to 64 mm.
- Width
- Its width at the widest point.
- Aspect
- Cross-section: 1 is round, less is flattened.
- Stem Roundness
- Roundness of the stem end: 1 pointed, 2 round, 4+ blunt.
- Tip Roundness
- Roundness of the other end, on the same scale.
- Belly
- Where the widest point sits (0 stem, 1 tip).
- Bend
- How far the fruit curves away from straight, either way.
- Stem Dimple
- How deep the stem end sinks in around the calyx.
- Dimple Radius
- How wide that dimple is.
Cap (Calyx)7
The dried perianth at the stem end: fused petals on a lobed plateau, with the little crater the stemlet leaves in the middle. Real geometry, built per bunch and seated on that bunch's own fruit — the stem end is sampled into a KD-tree and every cap vertex is placed a measured distance out from the actual skin, so the cap can never sink into the date whatever shape you give it. The toggle in the section header switches it on and off. About 270 triangles a fruit at the hero level.


- Cap Size
- Radius of the dry cap, as a fraction of the fruit's own half-width.
- Cap Relief
- How far the cap stands off the flesh.
- Crater Width
- Width of the crater the stemlet leaves in the middle of the cap, as a fraction of the cap.
- Crater Depth
- How deep that crater sinks. 0 closes it altogether.
- Petals
- Fused perianth lobes around the cap.
- Lobing
- How strongly those lobes shape the cap's outline.
- Cap Seed
- A random seed for the cap alone.
Skin Layers — the global settings4
The skin is not an image. It is a stack of texture layers you build yourself, in any order and as many as you want, and the node group rebuilds in place whenever you change it. Three settings govern the whole stack:


- Relief
- Displacement height as a fraction of the fruit width — how far the whole stack actually lifts.
- Tip Soften
- Fades the relief at both poles so it does not break up at the fruit's two ends.
- Skin Seed
- A random seed for the whole stack.
- Add / Remove / Duplicate / ▲▼
- Add a layer after the active one, remove it, duplicate it, or move it up and down. Order matters: every layer blends with what is below it.
Skin Layers — the per-layer settings19
Every layer in the stack carries these settings. Some appear or disappear depending on the texture type you pick.

- Texture
- The texture type: Noise fBM (soft cloudy relief — plumpness and gentle skin waves) · Noise Multifractal (sharper noise — uneven cured skin) · Noise Ridged (sharp ridges — deep dried creases) · Noise Hybrid (ridges in the valleys, smooth on the peaks) · Noise Hetero (rough at the low end, smooth higher up) · Voronoi F1 (cells — pillowy segments between creases) · Voronoi Smooth F1 (soft cells — Barhi and Sukkari skin bulges) · Voronoi F2 (cell ridges) · Voronoi Edge (distance to cell edge — a crease network) · Wave Bands (distorted stripes — long wrinkles) · Wave Rings (distorted rings — wrinkles around the fruit) · Gabor (oriented fibre-like grain — micro skin).
- Blend
- How the layer blends with what is below it: Add (height adds) · Subtract (height cuts in) · Multiply (scales what is below, 1 = no change) · Max (keeps the higher of the two) · Mix (blends toward this layer by Strength).
- Bump Only
- Tick it and the layer goes to the material's bump and never moves a vertex. Detail at no geometric cost.
- Strength
- The layer's strength. Negative values invert its effect.
- Scale
- Features per fruit width — not per metre, so the same value stays right on a 25 mm date and on a two-metre one.
- Detail
- Noise octaves. With Gabor it is labelled Frequency instead.
- Roughness
- How much the higher octaves contribute. With Gabor it is Anisotropy; with the wave types, Detail Roughness.
- Lacunarity
- The gap between octaves. With the wave types it is labelled Detail Scale.
- Distortion
- Distortion of the texture coordinates — what makes bands and rings look organic instead of geometric.
- Randomness
- Voronoi cell jitter. Zero gives a regular grid.
- Bands (Direction)
- Wave textures only: which axis the bands run across — X, Y, Z (the fruit axis) or Diagonal.
- Stretch
- Stretches the texture along the fruit axis. Below 1 squashes it; above 1 draws it out into long wrinkles.
- Low / High
- The remap: which texture value maps to 0 and which to 1 — exactly like the first and last stop of a ramp. Swap them and the layer inverts.
- Center
- 0.5 makes the relief go both ways. 0 makes it only rise, or only cut — which is what you want for creases.
- Invert
- Inverts the whole layer.
- Mask Start / End
- An axis mask: where along the fruit the layer applies (0 stem, 1 tip). This is what lets you crease only the stem end, or catch light only at the tip.
- Feather
- How soft that mask's edge is.
- Invert Mask
- Inverts the mask so the layer applies outside the range instead of inside it.
- Seed
- A random seed for this layer alone.
Shader — the fruit12
The whole material is procedural — noise, ramps and maths. There is not one image texture in it, so it has no resolution, never needs a UV, and never ships a texture folder. Every control below is an ordinary Value or RGB node with a fixed name inside the material — open the shader editor and rewire anything you like, the panel drives the same nodes. Your edits survive a rebuild.

- Body / Tip / Stem
- The three colours that build the fruit: the body, the tip, and the stem end. A Barhi at the turn has an amber glossy tip and a pale cream stem end; an Ajwa is one colour.
- Two Tone
- How far the tip colour and the stem colour separate, and how defined the band between them is.
- Colour Variation
- How far individual fruit drift from the chosen colour. A signed offset, not a mix — mixing dragged every fruit toward the middle of the ramp and made six varieties render as the same pale fruit.
- Crease Dark
- How dark the creases print. This is what separates a cured date from a waxy one.
- Crease Rough
- How much the creases roughen. Creases darken and roughen together, as they do in reality.
- Dust
- The waxy bloom. Cool greyish lavender, sitting on the raised skin with the deep creases staying dark and red underneath. It is a sharpened cavity mask multiplied by a break-up noise, with its own grain in the bump chain, so it reads as powder in the crevices instead of a wash over the whole fruit. It also drives Sheen, which is what that layer physically is.
- Peak Light
- How much the loose skin catches the light on the raised ridges.
- Gloss
- Scales the whole roughness range rather than replacing it, so the smooth/creased contrast the ripeness stages produce survives. It also drives a faint waxy sheen — deliberately faint, because a heavy clearcoat is exactly what makes rendered fruit read as moulded plastic.
- Micro Bump / Height Bump
- The two scales of surface detail: the micro grain, and the large relief coming from the skin stack. The crease pattern is also wired to the material output's Displacement socket with the method set to BOTH — with adaptive subdivision off this costs nothing and the bump does the work; turn subdivision on and the same pattern becomes real geometry for a close-up.
- SSS Weight / Radius / Scale / Anisotropy
- Subsurface. A bell centred on rutab: a green khalal is hard and opaque, a rutab glows when backlit, a cured tamr is denser again, a dried one barely scatters. The scatter radius is red-dominant and relative to the fruit's width, so a preset looks the same on a 25 mm date and on a 2.5 m one.
- Specular
- The strength of the direct specular reflection.
- Reset Shader
- Rebuilds this bunch's materials from scratch. Any hand edits in the shader editor are lost.
Shader — the arjoon and shamareekh4
Four controls on the stalk, on the same principle: named nodes, and your edits to them survive.

- Dryness
- Crossfades a fresh yellow-green waxy stalk to a cured brown dry one — hue and roughness together, not a tint.
- Fibre
- The lengthwise grain. A shamrookh is a dried fibrous stick, not a smooth dowel.
- Sheen
- How waxy the highlight is.
- Tint
- Multiplies the whole result. Leave it white unless you want to shift the entire colour.
Rig8
Four controls, and nothing ever has to be applied or baked. Weights are read straight out of the generated geometry — there is no weight painting at all. Delete the rig and regenerate, build a second one, or keep four bunches each with its own rig, materials and spring: the add-on tracks them separately and they do not interfere. Saving and reloading round-trips identically on every metric.


- Build Rig
- Creates or rebuilds the armature for this bunch. Rebuilding replaces the bones, so any pose or animation on the old rig is lost — and the panel warns you when the rig no longer matches the bunch.
- Remove Rig
- Deletes this bunch's armature and its vertex groups.
- CTRL_root
- Places the bunch in the scene.
- CTRL_carry
- The handle a character holds. Parent it to the hand with Child Of.
- CTRL_arjoon
- Bends the main stalk, five bones down its length.
- CTRL_sway
- Poses the whole fan of shamareekh by hand.
- MCH_jiggle
- The spring writes here, so CTRL_sway stays completely free for you.
- ترتيب المودفايرات / Modifier order
- The armature modifier sits before the geometry nodes modifier, not after. With the order reversed the mesh deforms by about 3% instead of 100%, because the node tree changes the vertex count.
Secondary Motion7
Secondary motion is driven by the rig's movement, not by a clock. That is the difference that makes it usable for a character walking with the bunch and then standing still.

- Secondary Motion (mode)
- Off: only what you key by hand · Spring (motion driven): the strands lag when the bunch is moved, overshoot when it stops and settle when it is still — nothing moves while the bunch is at rest. Measured: 0.0000° idle, 12.64° peak, settling to zero · Noise (time driven): a constant gentle wobble regardless of movement, right for wind on a hanging bunch, wrong for one sitting on a table.
- Stiffness
- How hard the strands are pulled back upright. Higher settles faster and swings less.
- Damping
- How quickly the swinging dies away. Low values keep it wobbling after the bunch stops.
- Response
- How strongly the carrier's acceleration throws the fruit.
- Jiggle
- The amount of automatic sway in Noise mode, so the strands keep moving without being keyed.
- Jiggle Speed
- Frames per noise cycle. Lower is faster.
- Apply Jiggle
- Puts the procedural noise on the sway control. Set the amount to zero to remove it.
Display2
Visibility toggles — useful for checking the branch structure, or for rendering a stripped arjoon.


- Fruit / Calyx / Knobs / Stalks
- Show and hide each part independently.
- Clean Up Assets
- Removes the hidden asset collection when no bunch uses it.
Outside the panel3
Commands you reach from the Add menu, not from the sidebar.
- Add ▸ Mesh ▸ Date Bunch
- Adds a collision-solved date bunch.
- Add ▸ Mesh ▸ Single Date
- Adds one date with no branches, with its full shape, skin and material.
- Add ▸ Mesh ▸ Date Pit
- Drops the stone as its own object with its own material, 22.5 mm long, at two detail levels. It is deliberately not placed inside the fruit of a bunch — 250 hidden stones would cost geometry nobody sees. Place it yourself for a cut date, a bowl of stones, or a close-up.
Gallery






