• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Fibonacci Sphere: A Smoother Sphere for OpenSCAD 3D Printer File Image 1
Fibonacci Sphere: A Smoother Sphere for OpenSCAD 3D Printer File Thumbnail 1

Fibonacci Sphere: A Smoother Sphere for OpenSCAD

16807user avatar16807user

June 22, 2014

thingiverse-icon
DescriptionCommentsTags

Description

##What it is:
A fibonacci sphere is an approximation for a sphere that is formed from an arbitrary number of roughly equidistant vertices. Pass it any positive number and you'll get a mesh back containing that exact number of vertices for each hemisphere. All vertices in the sphere will be roughly equidistant.

##What this means to you:

  • You get a sphere model that looks better while using fewer vertices.
  • You have precise control over the number of vertices used.
  • In theory, this also allows minkowski() to deliver smoother renders in the same amount of time.

##How it works:
Vertices start out at the meridian and are spaced at regular intervals along the z axis. With that, each vertex is rotated away from its predecessor by a certain angle. That angle is 360 degrees divided by the golden ratio.
For those who want a gentle (and fascinating) introduction as to why this algorithm works, try here

##Updates:
5/1/14: Adopted use of list comprehensions. Spheres render so fast, it's bananas - a 10000 vertex sphere takes only a second to render. It previously took 14 minutes. OpenSCAD version 2015.03 is required. For use with earlier versions of OpenSCAD, download "fibonacci_sphere.2014.03.scad"

7/28/14: Vertices are now lumped together into tetrahedra prior to hull operation. Previously, each vertex would be expressed by an individual tetrahedron of infinitesimal size as a way to work around OpenSCAD's lack of a "point()" module. This meant that for each vertex in the sphere, the hull operation would have to consider 4 times as many points. Major performance gains result from this change - runtime for a 100 vertex sphere has reduced from 25 seconds down to 3. This may be low enough to reap performance gains from minkowski() for certain low resolution fibonacci spheres. Additionally, the method signature for fibonacci_sphere has changed to include the standard $fn parameter. A fibonacci sphere should have roughly the same number of vertices as a sphere with the same value for $fn.

7/25/14: Vertex positions are now calculated manually to reap performance gains. Previously, vertex positions were simulated via rotate/translate operations. On a 100 vertex sphere this shaves off about 10 seconds worth of rendering. Also, corrected an oversight causing rendered spheres to be 1mm larger in radius.

License:

Creative Commons - Attribution - Share Alike

Related Models

Fibonacci Hook preview image

Fibonacci Hook

ni27ich profile image

ni27ich

2,185

⍋ Ultimate Vase Mode Christmas Tree Collection ⍋ preview image

⍋ Ultimate Vase Mode Christmas Tree Collection ⍋

Triple G Workshop profile image

Triple G Workshop

1,538

Fibonacci Squares | Articulated & Print-in-Place preview image

Fibonacci Squares | Articulated & Print-in-Place

ERAVIA profile image

ERAVIA

125

The Turbo Entabulator - a 3D-printable, fully mechanical computer preview image

The Turbo Entabulator - a 3D-printable, fully mechanical computer

chris profile image

chris

1,885

Fibonacci Hook preview image

Fibonacci Hook

basteln.mit.niki profile image

basteln.mit.niki

933

Fibonacci Spiral preview image

Fibonacci Spiral

Michele MM3D profile image

Michele MM3D

10

Fibonacci Vase preview image

Fibonacci Vase

mnemo80 profile image

mnemo80

1,761

Fibonacci Spiral Trees ⍋ Vase Mode V2 preview image

Fibonacci Spiral Trees ⍋ Vase Mode V2

Triple G Workshop profile image

Triple G Workshop

211