An open API service indexing awesome lists of open source software.

https://github.com/spacebat/blocky

Blocky is a visual programming language based on Common Lisp.
https://github.com/spacebat/blocky

Last synced: 6 months ago
JSON representation

Blocky is a visual programming language based on Common Lisp.

Awesome Lists containing this project

README

          

This is the README.ORG file for the Blocky programming language. It
contains general information about the project as well as an index of
important files in this source distribution. More information about
Blocky can be found at the Blocky home page, [[http://blocky.io][blocky.io]].

The included file "COPYING" contains full licensing information,
including the text of the GNU General Public License, Version 3.

See the included file INSTALL for installation instructions. A
programmer's guide may be found in the file GUIDE.ORG.

Blocky is a visual programming language for [[http://en.wikipedia.org/wiki/Common_Lisp][Common Lisp]] paired with an
[[http://www.gnu.org/software/emacs/][Emacs-like]] user interface. In addition to borrowing ideas from GNU
Emacs, the language design is heavily influenced by existing research
environments such as [[http://puredata.info/][PureData]], [[http://squeak.org][Squeak]], [[http://en.wikipedia.org/wiki/Morphic_(software)][Self Morphic]], [[http://scratch.mit.edu][MIT Scratch]],
[[http://byob.berkeley.edu][Berkeley's BYOB]] project, and more recently Jens Moenig's [[http://www.chirp.scratchr.org/blog/?p=24][Smalltalk
Elements.]]

My ultimate goal is to create an industrial-strength object-oriented
visual Lisp by importing the "abstraction" concept from PureData. Such
a "visual Lisp macro" facility enables much more powerful blocks to be
defined in terms of simpler ones, interactively. In addition there are
some improvements, such as native [[http://en.wikipedia.org/wiki/OpenGL][OpenGL]] support throughout, and of
course the advantage of compiling your block diagrams to optimized
machine code via [[http://sbcl.org][SBCL]]. (Don't forget [[http://quicklisp.org][Quicklisp]] either.)

I also wish to enable unfettered inquiry into computable knowledge,
and to support radical autonomy of creative expression. So I have
built Blocky first and foremost /as a human language activity
supported by free software/, not as an app or platform---because
language is a human right.

For more information on the design of Blocky, see
http://blocky.io/design.html

For a quick start to getting familiar with Blocky internals, see the
included file GUIDE.ORG (or read the first parts of the
[[http://blocky.io/reference.html][online Blocky reference manual]])
to get an overview of the language syntax. Then look through
BLOCKS.LISP and branch out from there. I've placed cross references
wherever possible.

Emacs users may find BLOCKY.EL useful in making Emacs behave better
while editing Blocky sources and game modules.

Here is a quick index of the various files:

- COPYING: Licensing information, including full GPLv3 text
- CREDITS: List of thank-yous for help, influences, dependencies
- INSTALL: How to obtain and build Blocky from source
- rgb.lisp: X11 color set
- keys.lisp: SDL key symbol translation table
- math.lisp: bresenham's and other algorithms
- logic.lisp: several CL tools adapted from PAIP
- dance.lisp: rhythm tools for USB dance pads and other controllers
- prototypes.lisp: a custom Self-like object system underlying Blocky
- console.lisp: basic device and file operations for SDL, OpenGL, etc
- blocks.lisp: core Blocky language model and default block behaviors
- halo.lisp: generic GUI object handles, in the style of Squeak Morphic
- windows.lisp: generic interactive viewer for buffers
- text.lisp: generic emacs-like textbox editing control
- trees.lisp: drop-down menus and tree tab widgets
- listener.lisp: Lisp data entry and command processing
- system.lisp: treating the system and session like an object
- worlds.lisp: places where gameplay happens
- shell.lisp: drag-and-drop enabled editor shell
- path.lisp: A-star pathfinding on a grid
- meta.lisp: visual macros for implementing blocky-in-blocky
- library.lisp: standard blocks library
- blocky.el: emacs lisp configuration for editing blocky source
- blocky.asd: ASDF system definition
- blocky-init.lisp: user-specific startup configuration file for blocky
- tasks.org: current task list and plans, in org-mode format
- blocky.org: write-up of some future plans for Blocky
- standard: directory with included fonts/images
- turtle: hello world example
- vomac: second example
- build-unix.lisp: build script for unix
- build-win32.lisp: build script for win32

Blocky is (C) Copyright 2006-2012 by David T. O'Toole
This program is dedicated to our beloved Yogi, who died 2006-10-06.