HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
createuniverses
praxis
C2014–2016
createuniverses / praxis

praxis

A live coding environment based on Lua, Lisp, Forth and Io

2Distinct people
5Mentions
1Explicit recommenders
188GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A live coding environment based on Lua, Lisp, Forth and Io

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

I love live coding environments, and yours looks really fun. Being so easy to embed, Lua is perfect for basing a live coding environment on. Here is one I made that is also…

createuniverses used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month5 dated mentions

Observed mentions: 2014-10-27 00:16:37 UTC to 2016-02-15 02:10:29 UTC.

0122014-10-01 00:00:00 UTC to 2014-11-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsOct 20142014-11-01 00:00:00 UTC to 2014-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-12-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2015-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-02-01 00:00:00 UTC to 2015-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-03-01 00:00:00 UTC to 2015-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-04-01 00:00:00 UTC to 2015-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-05-01 00:00:00 UTC to 2015-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-01 00:00:00 UTC to 2015-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 20152015-07-01 00:00:00 UTC to 2015-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-01 00:00:00 UTC to 2015-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-01 00:00:00 UTC to 2015-10-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2015-10-01 00:00:00 UTC to 2015-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-11-01 00:00:00 UTC to 2015-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-12-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2016-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-02-01 00:00:00 UTC to 2016-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 2016

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 20142014-10-01 00:00:00 UTC2014-11-01 00:00:00 UTC211
Nov 20142014-11-01 00:00:00 UTC2014-12-01 00:00:00 UTC000
Dec 20142014-12-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
Jan 20152015-01-01 00:00:00 UTC2015-02-01 00:00:00 UTC000
Feb 20152015-02-01 00:00:00 UTC2015-03-01 00:00:00 UTC000
Mar 20152015-03-01 00:00:00 UTC2015-04-01 00:00:00 UTC000
Apr 20152015-04-01 00:00:00 UTC2015-05-01 00:00:00 UTC000
May 20152015-05-01 00:00:00 UTC2015-06-01 00:00:00 UTC000
Jun 20152015-06-01 00:00:00 UTC2015-07-01 00:00:00 UTC000
Jul 20152015-07-01 00:00:00 UTC2015-08-01 00:00:00 UTC000
Aug 20152015-08-01 00:00:00 UTC2015-09-01 00:00:00 UTC000
Sep 20152015-09-01 00:00:00 UTC2015-10-01 00:00:00 UTC202
Oct 20152015-10-01 00:00:00 UTC2015-11-01 00:00:00 UTC000
Nov 20152015-11-01 00:00:00 UTC2015-12-01 00:00:00 UTC000
Dec 20152015-12-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
Jan 20162016-01-01 00:00:00 UTC2016-02-01 00:00:00 UTC000
Feb 20162016-02-01 00:00:00 UTC2016-03-01 00:00:00 UTC101

What Hacker News says

5 sources
Live coding environments typically include a text editor. Sometimes as in the case of Praxis, its possible to change the behaviour of the text editor while you use it. https://github.com/createuniverses/praxis I wrote it for myself mainly, so a lot of the features are undocumented and hidden away. But you can have a look at fnkeys.lua, editor.lua and keymap.lua to get a general idea. These are in prods/syntax2015continued. You can bring these up in praxis and make whatever changes you like to the live system. I like the idea of making it keyboard and buffer driven to an extreme, like the Commodore 64. For example, one simple technique I like is to "inject" code into the current buffer to place objects: function makeCamPosSaver() local x,y,z = getCamPos() x = math.floor(x) y = math.floor(y) z = math.floor(z) local s =
Read the rest
"setCamPos("..x..","..y..","..z..")" print2(s) end Then calling makeCamPosSaver injects a bit of code that will move the camera back where it was when you called it. Another example: pressing F3 creates a new buffer where you are supposed to fill in a string with what you are searching for. When you run that buffer, it will switch to the old one that spawned it, and move the cursor to the next occurrence of the search string. There are more creative ways to use this that others could come up with I'm sure.
In Why GNU Emacs?
Keep in mind there are actually two domains in music: instruments (sound synthesis) and orchestration. Both Skoar and Alda (which was linked yesterday) are only orchestration languages. I've been researching about this and narrowed down by these criteria: (1) Modern and maintained (2) Open source (3) Multiplatform (4) Supports live coding (5) Not MIDI-only output (6) Text-based (7) Not Java (sorry JSyn :P) For me live coding is important since I prefer to compose music in an exploratory fashion. Also, live performances are cool. Read more about live coding and resources in http://toplap.org The list in no particular order (beware of the brain dump): · ## Overtone (https://overtone.github.io/) The coolest kid on the block is actually a frontend to SuperCollider. - Clojure based. - VJ-ready. Integration with Processing via Quil (https://git
Read the rest
hub.com/quil/quil) and GLSL shaders via Shadertone (https://github.com/overtone/shadertone). - Lots of tooling: https://github.com/overtone · ## SuperCollider (https://supercollider.github.io/) - Object-oriented functional language (similar to Smalltalk/Ruby/C/JS). - Basically Overtone minus Clojure minus VJ plus IDE. - Client-server architecture (which is what allows Overtone to use it as a backend). · ## Sonic Pi (http://sonic-pi.net/) - Ruby DSL + IDE. - Built for Raspberry PI (but runs anywhere SuperCollider and Ruby are available). - Another frontend to SuperCollider. - Designed to be suitable for teaching children. Teacher resources available (http://www.sonicpiliveandcoding.com/ http://www.raspberrypi.org/learning/sonic-pi-lessons/) · ## Extempore (https://github.com/digego/extempore) - Scheme-like. - Supports both audio and graphics. - Defines itself as a 'cyberphysical' programming environment (http://dl.acm.org/citation.cfm?id=1869526). · ## ChucK (http://chuck.cs.princeton.edu/) - Real-time sound synthesis and music creation (real-time meant it used to take a real amount of CPU time in non-RT kernels, not sure if it's changed). - Time-based, concurrent programming model (they call it 'strongly-timed'). · ## Fluxus (http://www.pawfal.org/fluxus/) - Racket based. - Full-fledged environment. - Defined as 'a 3D game engine for livecoding worlds into existence', though it supports sound too. - Doesn't seem to be actively maintained (most recent release dates from April 2012). · ## Nyquist (https://www.cs.cmu.edu/afs/cs.cmu.edu/project/music/web/musi...) - (Still researching...) · ## Csound (http://www.csounds.com/) - (Still researching...) - Live coding added in a recent version. - Orchestration and synthesis are separate languages. · ## Tidal (http://yaxu.org/tidal/) - Haskell based. - Seems to support audio and graphics (defines itself as live coding of patterns). - (Still researching... I just came to know it in a link here.) · ## Skoar (https://github.com/sofakid/Skoarcery) - Another SuperCollider frontend. - Only orchestration, though I guess it supports different instruments created in SuperCollider. - Doesn't seem to support live coding? (Added to the list until I research more.) · ## MORE I just found these in the TOPLAP wiki (and Googling around) but had no time to comb through them. Listed in no particular order: - https://github.com/edne/pineal - https://github.com/createuniverses/praxis - http://charlie-roberts.com/gibber/about-gibber/ - https://github.com/LuaAV/LuaAV - http://hyperyarn.criticalartware.net - http://www.renickbell.net/conductive/doku.php/ - EXTRA: Live coding light shows https://github.com/brunchboy/afterglow
In Skoar – A musical programming language

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.