Author Archives: John Croisant

A Personal Lisp Crisis

There is a half-jocular saying among atheists, that the surest way for a Christian to lose their faith is to read the Bible, cover to cover. The idea is that if you really scrutinize it, and don’t gloss over the strange, antiquated, or inconsistent parts, it stops seeming so profound and special. I don’t know [...]

Posted in Lisp | 7 Comments

Ambienome Brain Dump

Lately, I’ve been focusing so much on Common Lisp itself, that I have barely spent any time on Ambienome, the whole reason I’ve been learning it. It has been so long that I can barely remember what I was working on. (Physics engine integration, I think?) That’s no good, so I wanted to take some [...]

Posted in Ambienome | Leave a comment

A Rubyist’s Impressions of Common Lisp

It has been nearly 6 months since I dove into Common Lisp. I have been studying and/or using Common Lisp almost every day, working on Ambienome and related code. So, I wanted to take some time to document my observations, feelings, and impressions of Common Lisp at this time. Be advised that this is a [...]

Posted in Lisp, Ruby | Tagged , | 24 Comments

Physics Engine and Object Selection

This is the second part of my post about what I’ve been working on lately. In the first part, I talked about data structures and serialization. In this post, I talk about the physics engine and object selection via mouse picking. For Ambienome’s physics engine, I’m using SquirL, a Common Lisp port of the popular [...]

Posted in Ambienome, Lisp | Leave a comment

Data Structures and Serialization

Lately, I’ve been tackling several separate, but interconnected, systems in Ambienome: data structures, serialization, object selection, and the physics engine. These are complex topics, so I’ve written this in two parts. In this first part, I talk about data structures and serialization, and in the second part I talk about the physics engine and object [...]

Posted in Ambienome, Lisp | Leave a comment

Complicated Code and Creative Blocks

The past several weeks have been a struggle, productivity-wise. First, I spent quite a lot of time working on proto-slots. That may seem productive, but the amount of effort I put into polishing and documenting it was way out of proportion to the benefit I would get from it. I think I did a pretty [...]

Posted in Ambienome | Leave a comment

Mini-project: proto-slots

I’ve just released proto-slots, a mini-project I created as part of Ambienome. From the README: proto-slots provides a macro for defining prototypal accessor methods so that CLOS instances will support protoypal inheritance. Prototypal inheritance means that an instance’s slots can inherit values from another instance, known in these docs as the “base object” (but more [...]

Posted in Lisp, Projects | Leave a comment

Colored Shapes

I got a bit sidetracked while working on creature components, but still ended up making important progress for the overall system. First, I created a new transform class by abstracting and cleaning up the shape class’s position, angle, and size attributes and methods. I also created a transformable “mixin” class, which can be used by [...]

Posted in Ambienome | Leave a comment

Shape Mesh Progress

Yesterday, I completed the code to generate triangle and circle meshes: The triangle looks like it’s too small, but it fits perfectly in the circle, and the circle fits perfectly in the square. Yay, geometry! Of course, when building a creature, they can be scaled to whatever size you like, and the algorithms can produce [...]

Posted in Ambienome | 1 Comment

Adventures with the OpenGL shader pipeline

For the past several weeks, I’ve been learning “modern” OpenGL programming practices, by which I mean using a GLSL shader pipeline with vertex and fragment shaders. Even before starting Ambienome, I was already somewhat familiar with the old OpenGL “fixed function pipeline”, using glBegin/glEnd, glColor, glVertex, etc. Ambienome is going to be visually simple enough [...]

Posted in Ambienome | Leave a comment