The GNU 3DLDF Really Old News Page

Author: Laurence D. Finston

This copyright notice applies to the text and source code of this web site, and the graphics that appear on it. The software described in this text has its own copyright notice and license, which can be found in the distribution itself.

Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 The Free Software Foundation, Inc.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of this license is included in the file COPYING.TXT

Last updated: April 5, 2021.

GNU 3DLDF 2.0.3 Released.
It can be downloaded from
Alternatively, will automatically redirect to a nearby mirror.

GNU 3DLDF 2.0 Released!
It can be downloaded from
Alternatively, will automatically redirect to a nearby mirror.

It is also available from the Git repository for the project at Savannah:
git clone git://

This is the first release since in 2004. It is also the first release including the interactive program `3dldf', which implements a language intended to resemble Donald Knuth's METAFONT language and John Hobby's MetaPost language, which is based on METAFONT.

In previous releases, the GNU 3DLDF package was more like a library of C++ classes and functions which could be used by users to write programs for making drawings. For several years, versions of the package allowing interactive use have been available via Savannah, but 2.0 is the first official release including this feature.

There have been many other changes, too numerous to list here.

This release has been delayed so long, because the change in the way the package is meant to be used (i.e., interactively) means that the manual must be completely rewritten. Unfortunately, it has not been possible for me to do this. However, in order not to delay the release any longer, I have decided to go ahead without a new manual. As a partial substitute, many examples are included in the subdirectory 3DLDF-2.0/examples/.

2012.08.05., 2012.08.06.
Updated Sphere Model 2 : Added octagonal caps for the ends and matching pyramids to be attached to the caps. This is meant to solve the problem that it's difficult to attach the spherical biangles as they narrow to a point at the ends.

Started working on plans for Building Elements for paper or cardboard models.

Added a page for music with an example of how polyrhythms can be illustrated: Music.

Added a page for board games with a document containing empty chessboard and go board diagrams: Board Games.

Added a document with plans for a papercut: Star Spiral Pattern 1.

I've added a Geometric Patterns page with a section Papercut Patterns. On the latter, I have posted a document (along with the source code) containing patterns which may be of use for making papercut patterns (or similar kinds of patterns).

Added a third pattern on the Stellation Patterns webpage. I've also put all of the patterns into a single document.

Added collections of model plans on the models webpage. These are PDF files, plain and compressed (gzipped), in DIN A4 and DIN A3 format.

Added an Ellipsoid Models webpage. I'm currently working on plans for a model of an ellipsoid and I've posted the source code and files containing images on this page. However, this is a work-in-progress and the plans are still very incomplete.

Added plans for a third sphere model.

Added a Stellation Patterns webpage.

Added plans for a second version of a sphere model. This version has separate tabs, so the pieces are flush and don't overlap.

Added an Architectural Models webpage with plans for a paper model of the upper part of a clock tower.

Added a Models webpage with plans for a paper model of a facetted cone.

Added a Sphere and Dome Models webpage.

Added plans for a cardboard model of a Great Rhombicosidodecahedron.

Added a Curve-Drawing Machine Simulation webpage. It contains an example of a trochoid pattern.

Added plans for a cardboard model of a Great Stellated Dodecahedron.

Added more examples of interference patterns and a flipbook with a cycloid pattern.

Started working on plans for a knitted dodecahedron model. (Note: Removed 2009.01.23.)

Added a flipbook with interference patterns.

I've started working on sets of functions and parser rules for complex numbers and matrices. They use data types and functions defined in the GNU Scientific Library. GNU 3DLDF now links to this library if it is available. All code using the GSL is conditionally compiled, so 3DLDF should fail gracefully if the GSL is not available and a user tries to use any features that require it.

I have also added web pages for Complex Numbers and Matrices, but they are both under construction.

Started working on plans for a cardboard dodecahedron model with sundial faces. So far, I've only calculated the dial for a single face. However, there are diagrams illustrating the method. The files can be found on the Polyhedron Models page (Dodecahedra) or on the Sundials page (Dodecahedron Model).

Added pages for Catalan Solids (Archimedean Duals) and Rhombic Triacontahedron. The Catalan Solids (Archimedean Duals) page is under construction. The Rhombic Triacontahedron page has a sample of the net and a page with rhombuses for cutting out watercolor paper. The tabs also have markings for stitching the model together.

The same sample is included on the Polyhedron Models page.

Added links to 3DLDF, MetaPost, TeX, PostScript, PDF files, along with a couple of others, under Current Sample. Also added a link to a compressed (gzipped) archive file containing all of the source files and some generated files comprising the current sample: currsmpl.tgz.

Added an Origami and Paper-Folding page.

Added plans for a dodecahedron model on the Polyhedron Models page.

Added a web page for arcs. It's currently under construction.

Put first sample on the sundials web page. Will be revising it and adding explanatory text soon.

Added a web page for sundials.

Added a web page for polyhedron models. Not much on it yet.

Added a web page for Focuses. It's currently under construction.

Moved the examples of using the Braikenridge-Maclaurin Construction to the Conic Sections webpage. The Braikenridge-Maclaurin Construction is related to Pascal's Theorem. Given five points on a conic section, the Braikenridge-Maclaurin Construction can be used to find an arbitrary number of additional points. I plan to use this for finding the parameters of conic sections where only points are known. This will be useful in finding intersections and solving the problem of apparent edges in perspective projection.

Added a Circles webpage.

2006 was a bad year for GNU 3DLDF project. I was only able to work on it a few times. I hope that 2007 will be better.

Added an image of a double-napped cone with shadow on the Cones webpage. The parser rules and functions needed for making it are new.

It is now possible to set, transform, and draw right circular and elliptical cylinders and cones. I'm still working on the functions and rules for the ‘cylinder’ and ‘cone’ types. I've added web pages for : Cylinders and Cones, but I haven't gotten around to putting any examples in them.

Added an Important Notice.

Added a Wave Forms page.

Added pages for Elliptical Paraboloids, Hyperbolic Paraboloids, One-Sheet Hyperboloids, and Two-Sheet Hyperboloids. They are currently all under construction.

Added a Paraboloids page and a Hyperboloids page. They are currently under construction.

Added code for finding the intersection of a polyhedron and a plane. It is a polygon (except for the degenerate cases).

Added code for finding the intersection points of a polyhedron and a linear path.

Finished the non-default constructor for the Great Rhombicosidodecahedron. Added illustrations of it to the Great Rhombicosidodecahedron page.

Added text, illustrations, and code samples to the Cuboids page.

I've now implemented a way of finding the ellipse that represents the intersection of an ellipsoid and a plane. See the The Intersection Points of an Ellipsoid and a Plane for more information.

Added Polyhedra, Cuboids, Regular Platonic Polyhedra, and Semi-Regular Archimedean Polyhedra pages. They're currently under construction.

Added a Quadric Surfaces page. It's currently under construction.

Added a Prime Numbers page.

Adding a Conic Sections page.

Working on functions for finding the intersection points of a linear path and a hyperbola.

Adding parser rules and functions for parabolæ.

Added a Hyperbolæ page.

Started working on a web page for the 3DLDF language.

Added a Parabolæ page.

The ellipsoid data type now works. See Ellipsoid for more information.

The sphere data type now works. See Spheres for more information.

I have now removed all of the declarations and rules for x_like expressions, e.g., path_like_variable, path_like_primary, ellipse_like_secondary, etc. These rules tended to cause conflicts, so I've decided to replace them with separate rules for each type. I've also removed the debugging code from the rules that I had to change. This substantially reduces the size of the file parser.c++, generated by GNU Bison from the parser input files. It is not possible to break this file up into parts and compile them separately. The length of time it takes to compile it is a bottleneck in development and installation. I am therefore trying to reduce its size. Removing these unnecessary rules and reducing the amount of debugging code seems to have helped. I also plan to replace a lot of code in the parser actions with function calls.

PLEASE NOTE: Since I've removed the code involving x_like expressions, some things that used to work are temporarily unavailable. I will be replacing the collective rules that I've removed with individual rules for the individual types. It will probably take me awhile before I've replaced all of the ones that were formerly available.

Added a Sources section.

Added a Graph Paper (Plain and Perspective) page.

Added a Converting TeX Text to Images section.

Back to top
Back to main page