The gendl Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The gendl Reference Manual

This is the gendl Reference Manual, version 2013031600, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:50:11 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

##Gendl®

Pre-built Distributions available here:

http://gendl.com

Gendl® is a Generative Programming and Knowledge Based Engineering framework, implementing concepts which date back to the 1980s and which cutting-edge companies have been quietly using to gain competitive advantage with mission-critical engineering applications. These concepts required hundreds of thousands of dollars investment in hardware and software just a couple decades ago. They are now at your fingertips as an integral part of the Open-Source ecosystem, running on commodity consumer-grade hardware.

Gendl allows for high-level declarative, object-oriented problem solving and application development, including but not limited to the ability to generate and manipulate 3D geometry. To solve a problem in Gendl, you formulate it using the define-object operator, which allows you to specify inputs, outputs (computed-slots), and child objects, which then gives the ability to generate a "tree" of objects, useful for decomposing complexity.

A graphical web-based interface, tasty, is available for interacting with your system as it is developed.

The web-based GUI framework used to make tasty (GWL) is also available for creating your own custom web-based user interfaces.

Fundamental KBE Features Provided

Gendl ships with a full set of wireframe 3D and 2D geometry primitives along with output lenses for standard browser-based viewing and exchange formats such as PDF, SVG, X3D, PNG, as well as DXF.

Optionally there is available a set of surface- and solid-modeling primitives which currently depend on SMLib, a commercial geometry kernel available from Solid Modeling Solutions, Inc. SMLib enables the use of standard CAD data exchange formats such as Iges, STEP, and STL (for 3D printing).

Basic Requirements:

  1. Common Lisp: Allegro CL 9.0, LispWorks 6.x, SBCL, or CCL (Clozure CL). Without web interface, initial ports to ECL, ABCL, and CLISP have also been completed.

  2. Quicklisp (available from http://www.quicklisp.org)

  3. Gnu Emacs (recommended Editor/IDE -- native CL Editor/IDEs can also be used)

  4. Standard Web Browser (Chrome, Firefox, Safari, IE, Opera). Pick one with WebGL support if possible (check here and here to check for WebGL browser support)

  5. Curiosity, Creativity, and Courage

Installation

To load the entire system, you can do it with:

  (ql:quickload :gendl)
  (gendl:start-gendl!)

Now you can do a quick sanity check by visiting:

http://localhost:9000/tasty

in your browser and trying to instantiate the default assembly tree (robot).

Emacs Editor/IDE Support

Slime (Superior Lisp Interaction Mode for Emacs) is recommended for developing Gendl applications with Emacs.

Slime is available with:

(ql:quickload :quicklisp-slime-helper)

`Glime' is our Gendl-specific customizations to Slime. This is implemented entirely on the swank (Common Lisp) side of things, and can be loaded with

 (load (compile-file ".../gendl/emacs/glime.lisp"))

Although not strictly necessary, the file .../gendl/emacs/gdl.el is also provided and can be used as a starting point or reference for loading Glime and Gendl into an emacs environment.

Further Documentation

Documentation is published here, and this very much an active work in progress. Training tutorials and videos are also in progress and in their current state are available in the Documentation section on http://gen.works.

Support/Community

Training/Coaching

Gendl source code Architecture:

Gendl is separated into layered components, some of which depend on others. Some components also depend on third-party external libraries, which are currently handled with the Quicklisp system.

At the core "kernel" is the :gendl (nickname :gdl) package, implemented with files in the folder gendl/base/. This includes the compiler/expanders for define-object and related macros as well as core primitives such as vanilla-mixin.

Including the base, there are eight modules supported with Gendl:

Alternative Geometry Kernels

If you have a different favorite solid modeling kernel (e.g. OpenCascade, Parasolid, Geometros sgCore), then an interesting project would be to interface the existing Surface package to that kernel, by implementing the methods in surf/source/methods.lisp.

The Surface (:surf) package (in the surf/ folder) contains all the high-level Surface and Solid modeling primitives currently implemented in Gendl. These primitives provide a protocol for what the objects should be able to do (i.e. what messages they should answer), but without the SMLib library and associated middleware available, they will not be able to return any results. The SMLib kernel and associated middleware are available as part of the commercial Genworks® GDL product from Genworks® International.

License

Affero Gnu General Public License.

The AGPL, has the requirement that you release any derivatives and any applications compiled with Gendl under AGPL-compatible license (if distributed at all).

Proprietary Distribution

For Proprietary (closed-source) development and distribution, the commercial Genworks® GDL system (including Gendl® technology and, optionally, commercial CL engines, technical support, and commercial solid modeling engine) is available from Genworks.

Bug Bounty Program, Bug Fix Program

Genworks offers a modest bounty for reporting (and sometimes solving) of bugs on the Issues List.

Please contact Genworks for details.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 gendl

Author

Dave Cooper <david.cooper@genworks.com>

License

Affero Gnu General Public License (please see http://www.gnu.org/licenses/)

Description

The Gendl Project

Version

2013031600

Dependencies
Source

gendl.asd (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.2 cl-lite

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Compile-and-Load Lite Utility

Version

20160828

Dependency

glisp (system)

Source

cl-lite.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.3 tasty

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Web-based Development Environment (tasty)

Version

20160828

Dependencies
Source

tasty.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.4 tree

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Tree component used by Tasty and potentially as a UI component on its own

Version

20160828

Dependency

gwl-graphics (system)

Source

tree.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.5 robot

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Simplified Android Robot example

Version

20160828

Dependency

gwl-graphics (system)

Source

robot.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.6 yadd

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Yet Another Definition Documenter (yadd)

Version

20160828

Dependencies
Source

yadd.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.7 gwl-graphics

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" GWL embedded graphics support

Version

20160828

Dependencies
Source

gwl-graphics.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.8 geom-base

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Wireframe Geometry

Version

20160828

Dependency

glisp (system)

Source

geom-base.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.9 gwl

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl® Generative Web Language (GWL)

Version

20161025

Dependencies
Source

gwl.asd (file)

Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.10 glisp

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Common Lisp Portability

Version

20160828

Dependencies
Source

glisp.asd (file)

Components

Previous: , Up: Systems   [Contents][Index]

2.11 base

Author

John McCarthy

License

Affero Gnu Public License (http://www.gnu.org/licenses/)

Description

The Gendl" Base Core Kernel Engine

Version

20160828

Dependency

bordeaux-threads

Source

base.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 gendl.asd

Location

gendl.asd

Systems

gendl (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 cl-lite.asd

Location

cl-lite/cl-lite.asd

Systems

cl-lite (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 tasty.asd

Location

apps/tasty/tasty.asd

Systems

tasty (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 tree.asd

Location

apps/tree/tree.asd

Systems

tree (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 robot.asd

Location

demos/robot/robot.asd

Systems

robot (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 yadd.asd

Location

apps/yadd/yadd.asd

Systems

yadd (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 gwl-graphics.asd

Location

gwl-graphics/gwl-graphics.asd

Systems

gwl-graphics (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 geom-base.asd

Location

geom-base/geom-base.asd

Systems

geom-base (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 gwl.asd

Location

gwl/gwl.asd

Systems

gwl (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 glisp.asd

Location

glisp/glisp.asd

Systems

glisp (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.11 base.asd

Location

base/base.asd

Systems

base (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.12 cl-lite/source/package.lisp

Parent

cl-lite (system)

Location

cl-lite/source/package.lisp

Packages

cl-lite


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.13 cl-lite/source/parameters.lisp

Dependency

source/package.lisp (file)

Parent

cl-lite (system)

Location

cl-lite/source/parameters.lisp

Internal Definitions

*these-features* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.14 cl-lite/source/cl-lite.lisp

Dependency

source/parameters.lisp (file)

Parent

cl-lite (system)

Location

cl-lite/source/cl-lite.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.15 cl-lite/source/initialize.lisp

Dependency

source/cl-lite.lisp (file)

Parent

cl-lite (system)

Location

cl-lite/source/initialize.lisp

Internal Definitions

initialize (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.16 cl-lite/source/zzinit.lisp

Dependency

source/initialize.lisp (file)

Parent

cl-lite (system)

Location

cl-lite/source/zzinit.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.17 tasty/source/package.lisp

Parent

tasty (system)

Location

apps/tasty/source/package.lisp

Packages

tasty


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.18 tasty/source/parameters.lisp

Dependency

source/package.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/parameters.lisp

Exported Definitions

*use-bsplines-for-vrml?* (special variable)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.19 tasty/source/assembly.lisp

Dependency

source/parameters.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/assembly.lisp

Exported Definitions

assembly (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.20 tasty/source/initialize.lisp

Dependency

source/assembly.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/initialize.lisp

Internal Definitions

initialize (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.21 tasty/source/inspector.lisp

Dependency

source/initialize.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/inspector.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.22 tasty/source/menu.lisp

Dependency

source/inspector.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/menu.lisp

Exported Definitions

menu-section (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.23 tasty/source/new-inspector.lisp

Dependency

source/menu.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/new-inspector.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.24 tasty/source/newer-inspector.lisp

Dependency

source/new-inspector.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/newer-inspector.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.25 tasty/source/part-type-form.lisp

Dependency

source/newer-inspector.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/part-type-form.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.26 tasty/source/publish.lisp

Dependency

source/part-type-form.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/publish.lisp

Internal Definitions

publish-tasty (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.27 tasty/source/status-object.lisp

Dependency

source/publish.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/status-object.lisp

Exported Definitions

status-object (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.28 tasty/source/test-part.lisp

Dependency

source/status-object.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/test-part.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.29 tasty/source/test-part2.lisp

Dependency

source/test-part.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/test-part2.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.30 tasty/source/two-viewports.lisp

Dependency

source/test-part2.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/two-viewports.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.31 tasty/source/viewport.lisp

Dependency

source/two-viewports.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/viewport.lisp

Exported Definitions

viewport (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.32 tasty/source/zzinit.lisp

Dependency

source/viewport.lisp (file)

Parent

tasty (system)

Location

apps/tasty/source/zzinit.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.33 tree/source/package.lisp

Parent

tree (system)

Location

apps/tree/source/package.lisp

Packages

tree


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.34 tree/source/parameters.lisp

Dependency

source/package.lisp (file)

Parent

tree (system)

Location

apps/tree/source/parameters.lisp

Internal Definitions

*debug?* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.35 tree/source/ajax.lisp

Dependency

source/parameters.lisp (file)

Parent

tree (system)

Location

apps/tree/source/ajax.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.36 tree/source/assembly.lisp

Dependency

source/ajax.lisp (file)

Parent

tree (system)

Location

apps/tree/source/assembly.lisp

Exported Definitions

tree (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.37 tree/source/newertree.lisp

Dependency

source/assembly.lisp (file)

Parent

tree (system)

Location

apps/tree/source/newertree.lisp

Exported Definitions

newertree (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.38 robot/source/package.lisp

Parent

robot (system)

Location

demos/robot/source/package.lisp

Packages

robot


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.39 robot/source/assembly.lisp

Dependency

source/package.lisp (file)

Parent

robot (system)

Location

demos/robot/source/assembly.lisp

Exported Definitions

assembly (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.40 robot/source/initialize.lisp

Dependency

source/assembly.lisp (file)

Parent

robot (system)

Location

demos/robot/source/initialize.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.41 robot/source/parameters.lisp

Dependency

source/initialize.lisp (file)

Parent

robot (system)

Location

demos/robot/source/parameters.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.42 robot/source/zzinit.lisp

Dependency

source/parameters.lisp (file)

Parent

robot (system)

Location

demos/robot/source/zzinit.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.43 yadd/source/package.lisp

Parent

yadd (system)

Location

apps/yadd/source/package.lisp

Packages

yadd


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.44 yadd/source/genworks.lisp

Dependency

source/package.lisp (file)

Parent

yadd (system)

Location

apps/yadd/source/genworks.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.45 yadd/source/parameters.lisp

Dependency

source/genworks.lisp (file)

Parent

yadd (system)

Location

apps/yadd/source/parameters.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.46 yadd/source/mixins.lisp

Dependency

source/parameters.lisp (file)

Parent

yadd (system)

Location

apps/yadd/source/mixins.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.47 yadd/source/define-object-documentation.lisp

Dependency

source/mixins.lisp (file)

Parent

yadd (system)

Location

apps/yadd/source/define-object-documentation.lisp

Exported Definitions

object-dokumentation (class)

Internal Definitions