Skip to content
/ l-lisp Public
forked from cbaggers/l-lisp

L-Lisp is a framework for generating and simulating plants and fractals in Common Lisp

License

Notifications You must be signed in to change notification settings

bejer/l-lisp

 
 

Repository files navigation

L-Lisp

Load the package e.g. (ql:quickload :l-lisp) and switch to the lsx namespace/package (in-package :lsx)

LSX> (timed-preview (make-instance 'gtree))

LSX> (gl-preview (make-instance 'gtree))

LSX> (gl-preview (make-instance 'gtree) :depth 6)

LSX> (gl-animation (make-instance 'climbing1))

LSX> (gl-animation (make-instance 'gtree) :recenter t)

Examples known to not (currently) work

  • fibonacci
  • signal-test
  • leaf
  • tropism2 (and the examples that are inheriting from tropism2)

Original Docs (markdownified)

L-Lisp: Lindenmayer systems in Lisp

L-Lisp is a framework for generating and simulating plants and fractals in Common Lisp.

This is the first public version of L-Lisp. Currently only CMU Common Lisp is supported, but porting to other CL implementations should be relatively easy. For Unix/X11 systems, OpenGL previews are possible, but the framework does not depend on them.

L-Lisp is released under the GNU General Public License (GPL), see the file COPYING for details.

INSTALLATION

It is recommended to download and the OpenGL bindings for CMUCL first. Get them from here

The build system used is MK-DEFSYSTEM, this is included with most new distributions of CMUCL as far as I know. In case it is not, you can get it directly from CVS

In l-lisp.system, change the l-lisp-dir path to point to your installation directory. Then, compiling and loading should be as easy as:

 (mk:compile-system :l-lisp)
 (mk:load-system :l-lisp)

(You might see some notes during complation; ignore them. Hopefully no warnings or errors, though.)

To test your installation, go to the LSX (L-SYSTEM-EXAMPLES) package and try out some of the classes in the examples.lisp file, for instance:

 (in-package :lsx)
 (rewrite-and-preview (make-instance 'snowflake) "snowflake.eps"
                      :depth 4)
 (rewrite-and-raytrace (make-instance 'stree) "stree.pov")
 (gl-preview (make-instance 'stree))

The two first examples depend on the programs "gv" and "povray", and the last requires that the OpenGL/Xlib bindings are present and working.

DOCUMENTATION

My thesis "L-Systems, Twining Plants, Lisp" includes documentation on L-Lisp and an introduction to L-systems in general. An XVI version without images is included in the doc/ directory, for the full version go to here

NOTES

This was my first Common Lisp project, and a great learning experience. There are probably some traces of my novice mistakes in my code, feel free to point them out to me. :-)

Send questions, feedback, bug reports, etc, to [email protected]. You can often find me on #lisp (irc.openprojects.net), my nick is Soulman.

Hack away, and have fun.

Knut Arild Erstad [email protected]

About

L-Lisp is a framework for generating and simulating plants and fractals in Common Lisp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Common Lisp 99.9%
  • Makefile 0.1%