commercial technical support, a world-class NURBS surface and solid modeling
kernel, and a choice of commercial Common Lisp engines.</p>
<p>Knowledge-based engineering uses something called knowledge models to represent parts of the design process. For more information on what KBE is, see the <ahref="http://en.wikipedia.org/wiki/Knowledge-based_engineering">wikipedia article on KBE</a>.</p>
</div>
<divclass="fullpage about">
<h1>About Gendl</h1>
<p>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 <tt>define-object</tt>
macro. To solve a problem in Gendl, you formulate it with
a <tt>define-object</tt> 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.</p>
<h2>Then</h2>
<p>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 <ahref="http://en.wikipedia.org/wiki/Knowledge-based_engineering">Wikipedia
article on KBE</a>.</p>
<p> 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. </p>
<h2>Now</h2>
<p>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.</p>
<p>Gendl contains the entire language kernel, web interface
components, and basic geometry primitives. Its commercial sibling,
commercial technical support, a world-class NURBS surface and solid modeling
kernel, and a choice of commercial Common Lisp engines.</p>
<p>Knowledge-based engineering uses something called knowledge models to represent parts of the design process. For more information on what KBE is, see the <ahref="http://en.wikipedia.org/wiki/Knowledge-based_engineering">wikipedia article on KBE</a>.</p>
<h1>About Gendl, or, What can you do with emacs and a web browser?</h1>
<p>Gendl (or GenDL) stands for "GENeral-purpose Declarative Language". Gendl is a language, embedded in Common Lisp, that allows for high-level declarative and object-oriented problem solving and application development. At the heart of Gendl lies the <tt>define-object</tt> macro. To solve a problem in Gendl, you formulate it with <tt>define-object</tt>, which allows you to specify inputs, outputs, and child objects. These combine to give you the ability to generate a "tree" of objects, a useful way of decomposing complexity.</p>
<h2>"Knowledge-based engineering"?</h2>
<p>You'll often here Gendl associated with something called "knowledge-based engineering". Knowledge-based engineering (KBE) is the application of knowledge-based systems to manufacturing design and production. It's especially important with computer-aided design (CAD) software because such software happens to be intensively knowledge-based.</p>
<p>Knowledge-based engineering uses something called knowledge models to represent parts of the design process. For more information on what KBE is, see the <ahref="http://en.wikipedia.org/wiki/Knowledge-based_engineering">wikipedia article on KBE</a>.</p>
</div>
<aname="license"></a>
<divclass="fullpage three license">
<imgsrc="/imgs/agpl.png"align="left">
<h1>License: The Affero GNU Public License</h1>
<blockquote><p>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.</p>
<p>
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 <b>your freedom to share and change all versions of a program</b>--to make sure it remains <b>free software</b> for all its users.
</p><p>
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.</p>
<p>- The AGPL Preamble (<ahref="http://www.gnu.org/licenses/agpl-3.0.html">link</a>)</blockquote>
<p>Gendl is licensed under the Affero GNU Public License (AGPL). For writers of Gendl applications, this means that your applications also need to be released under AGPL. There are no restrictions against commercial use of this free system, but the source code for your system must be made available.</p>
<p>For those with closed-source needs, the commercial Genworks GDL is available. See <ahref="http://genworks.com/">here</a> for more information. </p>
<p>We're currently working on some web-based documentation. For now: </p>
<ul>
<li><p>Please see the <ahref="http://genworks.com/downloads/tutorial.pdf">GDL manual</a>. This user manual is written for the commercial Genworks GDL; however, this has enough in common with Gendl that it is still relevant.</p></li>
<li><p>Check out our new series of <ahref="http://www.youtube.com/watch?v=lUE8dGkJIlE&feature=youtu.be&list=PLRhCdLP6SHQ-BIvUEBuVW0Ip5npMR9M4x">video tutorials</a>. Note: This is still a work in progress.</li>
<li><p>Here's some <ahref="https://www.dropbox.com/sh/utdoexvoxrajju4/AAC6OIfhtgHb0CkmZeye1zhqa">example code</a> to get you used to what Gendl code looks like. </p></li>
</ul>
</div>
<aname="demos"></a>
<divclass="fullpage two">
<h1>Demos</h1>
</div>
<aname="getinvolved"></a>
<divclass="fullpage three">
<h1>Get Involved</h1>
<imgsrc="/imgs/github.png"align="right"/>
<p>Do you love Gendl and want to become a part of something awesome? You can get started by forking our Github repository at <ahref="https://github.com/genworks/gendl">genworks/gendl</a>. </p>