Skip to content

gregja/zdogXperiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zdogXperiments

experiments with zdog

I discovered Zdog in the beginning of june 2019 and I liked it immediately. It's a really cool project, so I decided to make some experiments with it. This github repository is the result of those experiments. It's just the beginning, I have a lot of other ideas to test ;)

Note that for all shapes, it's possible to zoom with arrow keys, to reset the zoom with the escape key, and to "click & drag" to rotate the shape.

To test the algorithms, just download the zip of this repository, unzip it, double-click on "index.html", and follow the links.

Follow this link to watch the live demo of this project :

http://ledefrichoir.com/labo/zdogXperiments/

The content of the project :

  • 3D Cube : cube generated programmatically, with two types of render : "wireframe" and "paint" (for the "paint" mode, colors are generated by Chroma.js)

  • 3D shapes : shapes generated programmatically => cube, pyramid, icosahedron, cone, 2 spheres, 2 cuboïds, 2 cylinders, tube, diamond and double diamond (both generated with tube shape), calices (2 variants generated with tube shape), strange fruits (2 variants)

  • Load wavefront obj files V1 (*) : cube, dodecahedron, icosahedron, and a lot of other objects, found on this site : http://people.sc.fsu.edu/~jburkardt/data/obj/obj.html

  • Load wavefront obj files V2 (*) : V1 with asynchronuous loading of the 3D objects (better practice using the Fetch API)

  • Load wavefront obj files V3 (*) : V2 with a "paint" mode (the same used for "3D Cube" and "3D shapes")

  • Menger Sponge & Flake generators : adaptation of algorithms of Frido Verweij (https://library.fridoverweij.com/codelab/menger_fractals/)

  • Tunnel 3D : shape generated using an algorithm of Niklas Knaack, found on this pen : https://codepen.io/NiklasKnaack/pen/WyWqja

  • 8 cubes linked

  • 8 cubes linked and clickable : how to set a list of clickables shapes with Zdog and a ghost canvas (*2)

  • Parametrical surfaces : (big update the 2020-01-01) Ellipsoid, Sphere, Torus, Hyperboloid, Cone, Pseudo-sphere, Helicoid, Katenoid, Möbius ribbon, Klein bottle, Limpet torus, triaxial hexatorus, saddle torus, triaxial tritorus, bow curve, and a lot of new weird creatures

  • Parametrical surfaces customizable (NEW)

  • Magnetic cubes

  • Solar system (n-body algorithm) (=> experimental, for fun, not finalized)

  • XWing

  • Complex 3D object created with 3 primitives (*3)

  • 3D animals running (*4)

  • 3D shape generator (*5)

  • Boxman, a robot walking (*6)

  • Grid of cubes swinging

  • Calabi-Yau manifold (*7)

  • Segments for puppets - 5 examples (*8)

  • Leap Motion with Zdog - draw hands (*9)

  • Cuboid generated with Delaunay Triangulation (*10)

  • 3D Objects excavated (*11)

  • Constructive Solid Geometry with csg.js (new) (*12)


(*) Note that the import OBJ algorithm is largely inspired by a similar algorithm found on Phoria.js, of Kevin Roast : http://www.kevs3d.co.uk/dev/phoria/

(*2) see improved version by José (thank's José): https://codepen.io/ncodefun/pen/aggZKP

(*3) recreation with zdog of : https://library.fridoverweij.com/codelab/3d_wireframe/

(*4) recreation with zdog of : https://codepen.io/hankuro/pen/QMVLJZ

(*5) inspired by an example excerpt of the book of Nikolaus Gradwohl : "Processing 2: Creative Programming Hotshot", Packt Publishing 2013

(*6) inspired by a pen of Hankuro : https://codepen.io/hankuro/pen/LrbVrx

(*7) inspired by this tutorial : https://observablehq.com/@sw1227/calabi-yau-manifold-3d

(*8) inspired by the book : "Foundation HTML5 Animation with JavaScript" of Billy Lamberta and Keith Peters (ed. Apress), http://lamberta.github.io/html5-animation/

(*9) you'll find different links (docs and tutorials) in the beginning of the JS code

(*10) Source of the Delaunay algorithm : https://github.com/ironwallaby/delaunay.git

(*11) Adaptation for Javascript of an algorithm excerpt from the book : "Graphisme 3D en Turbo Pascal", Gérald Grandpierre and Richard Cotté, édiTests 1988

(*12) Link to the project csg.js : http://evanw.github.io/csg.js/


A lot of examples of this project are visible on my pens : https://codepen.io/gregja/

Link to this github repository : https://github.com/gregja/zdogXperiments

Link to the official site of Zdog : https://zzz.dog/

About

experiments with zdog

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published