Gendl is derived from "GENeral-purpose Declarative Language". Embedded in Common Lisp, Gendl allows for high-level declarative and object-oriented problem solving and application development. At the heart of Gendl lies the define-object macro. To solve a problem in Gendl, you formulate it with a define-object form, which allows you to specify inputs, outputs, and child objects. These combine to generate a "tree" of objects, which can contain your problem solutions. Working with this "functional tree" is a useful way of decomposing the complexity of almost any kind of problem.
Gendl has its roots in a discipline called "knowledge-based engineering". Knowledge-based engineering (KBE) is the application of knowledge-based systems to manufacturing design and production. KBE has been used in cutting-edge companies since the mid 1980s for tackling the toughest design and engineering challenges, usually involving geometry. For more information, see the Wikipedia article on KBE.
Back in the day, companies like Boeing, Airbus, and Rolls-Royce invested millions of dollars in software and workstations to achieve KBE capabilities. Because it was so costly and so specialized, KBE was only ever used by high-end companies on the most challenging problems --- the technique never saw mainstream use.
In Gendl today, you have the same powerful workhorse at your fingertips, running on commodity hardware and free, open-source software. So the door is now open to apply this technology to routine everyday problems, as well as the high-end engineering and geometry challenges.
Gendl contains the entire language kernel, web interface components, and basic geometry primitives. Its commercial sibling, Genworks® GDL. GDL adds proprietary licensing (for closed-source application deployment), commercial technical support, a world-class NURBS surface and solid modeling kernel, and a choice of commercial Common Lisp engines.
Knowledge-based engineering uses something called knowledge models to represent parts of the design process. For more information on what KBE is, see the wikipedia article on KBE.
The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
- The AGPL Preamble (link)
Gendl is licensed under the Affero GNU Public License (AGPL). This means that distributed or hosted application binaries compiled with Gendl (and therefore containing parts of Gendl) also need to have their source code released under AGPL. There are no restrictions against commercial use of this free system, but the source code for distributed or hosted applications must be made available for download by the user.
For those with closed-source distribution needs, Gendl's commercial sibling, Genworks® GDL, is available. GDL also comes bundled with commercial technical support, an integrated world-class NURBS surface and solid modeling kernel, and a choice of commercial Common Lisp engines.
Current stable version:
Current development version (coming soon):
Already a Common Lisper?(ql:quickload :gendl) (gendl:start-gendl!)
Note: The Windows and Mac distributions contain binary versions of Gnu Emacs and Gnu Ghostscript. The source code for these programs is available at:
Please continue to visit this page for ongoing documentation updates. For now: