This is the master package that references all dendrite packages
Dendrite will eventually be a collection of procedural generation libraries, for now it's rather empty :)
Each can be loaded on their own or you can load dendrite to load them all.
cl-hamcrest
is an implementation of the Hamcrest idea in Common Lisp. It simplifes unit tests and makes them more readable. Hamcrest uses the idea of pattern-matching, to construct matchers from different pieces and to apply them to the data.
This library provides the FORMGREP
function and related utilities which find top-level Lisp forms matching the regular expression corresponding to an operator name, returning the matched forms and the names of the files and the line numbers where they were found.
This prompter library is heavily inspired by Emacs' minibuffer and Helm (https://emacs-helm.github.io/helm/). It only deals with the backend side of things, it does not handle any display. Features include asynchronous suggestion computation, multiple sources, actions and resumable prompters.
variatio
is a web app that generates variations from a given initial musical phrase. A textual mini-language is defined for the input. The variations are obtained from a series of algorithmic transformations. The user is then offered a pdf score with the results.
This Common Lisp package offers functions for parsing and formatting decimal numbers. The package's main interface are the functions parse-decimal-number
and format-decimal-number
. The former is for parsing strings for decimal numbers and the latter for pretty-printing them as strings.
cl-rmath
is a simple, autogenerated foreign interface for the standalone R API libRmath
. There has been no effort to provide a high-level interface for the original library, instead, this library is meant to serve as a building block for such an interface.
Radiance is a web application environment, which is sort of like a web framework, but more general, more flexible. It should let you write personal websites and generally deployable applications easily and in such a way that they can be used on practically any setup without having to undergo special adaptations.
This is a client library to interact with the "mod.io" (https://mod.io) platform to manage "mods" or extensions for games and other applications. It covers the full v1 API and includes convenience methods to make interacting with the API as well as syncing mods and so on easy.
FARE-MOP is a small collection of utilities using the MetaObject Protocol. It notably contains a SIMPLE-PRINT-OBJECT method, and a SIMPLE-PRINT-OBJECT-MIXIN mixin that allow you to trivially define PRINT-OBJECT methods that print the interesting slots in your objects, which is great for REPL interaction and debugging.
ContextL is a CLOS extension for Context-Oriented Programming (COP).
Find overview of ContextL's features in an overview paper: http://www.p-cos.net/documents/contextl-soa.pdf. See also this general overview article about COP which also contains some ContextL examples: http://www.jot.fm/issues/issue_2008_03/article4/.
Sycamore is a fast, purely functional data structure library in Common Lisp. If features:
Fast, purely functional weight-balanced binary trees.
Leaf nodes are simple-vectors, greatly reducing tree height.
Interfaces for tree Sets and Maps (dictionaries).
Ropes.
Purely functional pairing heaps.
Purely functional amortized queue.
Magic (ed) is a tiny editing facility for Common Lisp, where you can directly load, edit, manipulate and evaluate file or file content from REPL. This package also can be a starting point for people who are not accustomed to Emacs or SLIME and would like to continue using their default terminal/console editor with Common Lisp.
This library implements the let+ macro, which is a dectructuring extension of let*. It features:
Clean, consistent syntax and small implementation (less than 300 LOC, not counting tests)
Placeholder macros allow editor hints and syntax highlighting
&ign
for ignored values (in forms where that makes sense)Very easy to extend
Eclector is a portable Common Lisp reader that is highly customizable, can recover from errors and can return concrete syntax trees.
In contrast to many other reader implementations, eclector can recover from most errors in the input supplied to it and continue reading. This capability is realized as a restart.
It can also produce instances of the concrete syntax tree classes provided by the concrete syntax tree library.
This is a wrapper for the SDL2_TTF library used for loading fonts and creating text assets. The library, in it's current state, can load TTF and OTF fonts and render fonts with the three different rendering modes provided by the C library (solid, shaded, and blended). While Latin text, UTF8, UNICODE, and Glyph text rendering is available only Latin text has been tested (as shown in the examples).
This package provides CFFI binding to libmixed
audio library for Common Lisp with support of other audio formats available on GNU/Linux systems:
Alsa
Jack
Openmpt
PulseAudio
Flac (via CL-FLAC)
Mpg123 (via CL-MPG123)
Ogg/vorbis (via CL-VORBIS)
Out123 (via CL-OUT123)
WAV
binascii
is a Common Lisp library for converting binary data to ASCII text of some kind. Such conversions are common in email protocols (for encoding attachments to support old non-8-bit clean transports) or encoding binary data in HTTP and XML applications. binascii
supports the encodings described in RFC 4648: base64, base32, base16, and variants. It also supports base85, used in Adobe's PostScript and PDF document formats, and a variant called ascii85, used by git for binary diff files.
Overlord is a build system in Common Lisp. It is a real build system, with all the modern features: rules with multiple outputs, parallel builds, immunity to clock issues, and dynamic dependencies.
But Overlord is more than another build system. Overlord is a uniform approach to dependencies inside or outside of a Lisp image. Overlord is to Make what Lisp macros are to C macros.
Overlord is designed to be used from the Lisp REPL. A command line interface is available in a separate repository. See https://github.com/ruricolist/overlord-cli.
Screamer is an extension of Common Lisp that adds support for nondeterministic programming. Screamer consists of two levels. The basic nondeterministic level adds support for backtracking and undoable side effects. On top of this nondeterministic substrate, Screamer provides a comprehensive constraint programming language in which one can formulate and solve mixed systems of numeric and symbolic constraints. Together, these two levels augment Common Lisp with practically all of the functionality of both Prolog and constraint logic programming languages such as CHiP and CLP(R). Furthermore, Screamer is fully integrated with Common Lisp. Screamer programs can coexist and interoperate with other extensions to as CLIM and Iterate.
Nsymbols extends the regular package API of ANSI CL with more operations, allowing one to list:
package-symbols
.package-variables
.package-functions
.package-generic-functions
.package-macros
.package-classes
.package-structures
.And other symbol types, given
define-symbol-type
for those.
Nsymbols can also find symbols by their name/matching symbol with resolve-symbol
. All these operations are aware of symbol visibility in the given packages, due to a symbol-visibility
function.
An additional nsymbols/star
system has a set of functions mirroring the regular Nsymbols ones, but using closer-mop
to provide better results and returning structured data instead of symbols.
common lisp/cffi bindings for Open Asset Import Library (http://assimp.sourceforge.net/)
Should support assimp versions 3.0 to 3.3.x. Version to support is determined by querying c library at compile time (or load if not previously compiled), with errors if versions don't match at load or runtime. (Current assimp from git will be detected as 3.3, but isn't completely binary compatible so might have problems)
Allows (among other things) loading of the following formats:
Collada ( .dae ) Blender 3D ( .blend ) 3ds Max 3DS ( .3ds ) 3ds Max ASE ( .ase ) Wavefront Object ( .obj ) Industry Foundation Classes (IFC/Step) ( .ifc ) XGL ( .xgl,.zgl ) Stanford Polygon Library ( .ply ) *AutoCAD DXF ( .dxf ) LightWave ( .lwo ) LightWave Scene ( .lws ) Modo ( .lxo ) Stereolithography ( .stl ) DirectX X ( .x ) AC3D ( .ac ) Milkshape 3D ( .ms3d ) * TrueSpace ( .cob,.scn )
cl-tar-file
is a Common Lisp library that allows reading from and writing to various tar archive formats. Currently supported are the POSIX ustar, PAX (ustar with a few new entry types), GNU, and v7 (very old) formats.
This library is rather low level and is focused exclusively on reading and writing physical tar file entries using streams. Therefore, it contains no functionality for automatically building archives from a set of files on the filesystem or writing the contents of a file to the filesystem. Additionally, there are no smarts that read multiple physical entries and combine them into a single logical entry (e.g., with PAX extended headers or GNU long link/path name support). For a higher-level library that reads and writes logical entries, and also includes filesystem integration, see cl-tar
.
Virality Engine provides a system and workflow that helps describe the elements needed to write 2D or 3D games. It was designed with several domain specific languages that make it easier to describe, manipulate, and use assets commonly found in game making. Such assets include (but are not limited to) textures, materials, shader programs, and scene trees of actors that are available for instantiation. Virality Engine also knows how to accept input from keyboards and most joysticks and gamepads.
The component system is a hybrid model between an ECS and an object model. The components are defined similar to CLOS defclass, and regular generic methods can be used with them. Components are added to Actors which represent game concepts like players, scenery, effects, etc. We define a component protocol invoked by Virality Engine to move your components to the next state and render them each frame.