This is the home of bad.el, boxing after dark, which is an Emacs Lisp graphics program for GNU Emacs. It comes with a drawing program, the studio, plus ascii games and interactive demos. bad.el requires zero installation nor any further configuration of Emacs to try, instead it uses the local "queued" (`-Q') Emacs from scripts that come with the software.
Source:
files · bad.tar.gz
read on for bad-2
Do send a: mail
The bad.el studio is a drawing program for GNU Emacs.
bad.el runs on top of Emacs but doesn't look like it.
image: SDXL
Imported ascii drawings, building a shelf and a table. The shelf, not accidentally so.
This is the `defun' of my life.
image: SDXL
The studio running in a no-graphics terminal, showing how the poor man's transparency works in mysterious ways.
At the opposite end: running in kitty, that only runs in X.
Ascii art produced with the bad.el interactive editor that still has many features yet to be implemented.
A minimal demo of bad.el. Draw ascii art in and from Lisp, insert the result in a buffer.
This isn't just another demo.
ascii pyramid: __20h__
gradient: color.el by Drew Adams & Julien Danjou
An animated ascii game with a puzzle to be solved. The skyline of Toronto in a new version of an old work.
original ascii art: jgs
The coolness of software lies very much in the eye of the badholder. Here the familiar snake game, looking unfamiliar.
ascii art: josuah
It is known that in ancient Egypt, they used 3D geometry and algebra building the pyramids. But could they also have used computing, even programming?
Inspired by the 1985 game Déjà Vu.
image: Dalle
If you'd like to contribute to bad.el, there are many areas where it can be improved.
bad.el -
Here are a bunch of resources from other Emacs projects as I stumble upon them or people tell me about them - new items are appended, so it isn't sorted other than that.
I'm happy to integrate awesome features and neat modules
into bad.el.
neat
means one is able to call a function, be it a `defun' or
`cl-defmethod', and something interesting immediately
happens - this is by far the best way. The second best
way is: one is able to call a function, then useful
and/or interesting data is returned for further
inspection
😄
Actually, the cubes are 2 cubes à 6*6*6 red, green, and blue colors, but here I made them two chars on the horizontal side as the font is monospace, but not square (doing that, on the other hand, made them square as the font is 16x8 pixels - so lucky). A square font would be interesting for bad.el. Note the awesomeness of `cl-loop'.
I'm currently working on a minimal [1] version of bad-el. This version already runs much faster thanks to more cognitive algorithms for drawing. But this isn't yet a release. I have other ideas before it skyrockets. For everything that does not involve images it is super-fast; for small resolutions, 640x480 or 720x480, it is super-fast even with images; for a 1280x720 screen resolution, a 158x44 char terminal emulator window, and a 1024x1024 png, the response time for drawing the whole thing is 0.09s (9 cs = 90 ms, or 11.1 FPS, so good it isn't a FPS...). This is for byte-compiled, but not natively compiled Elisp.
[1]
Minimal? software not longer than
8 files * 256 lines/file =
2**3 files * 2**(2**3) lines/file =
2**(3 + 2**3) = 2**(3 + 8) = 2**11 =
2048 lines
Thanks for reading this far! See you around 😄
updated: 2025-01-11
start over