[RayCaster] just the rays, and a DSP-inspired processor, in the new version

Lauren Pullen <[email protected]> Tue, 7 Jul 2026 12:16:00 -0600
Newsgroups gmane.comp.lang.smalltalk.squeak.general
Message-ID <[email protected]>
Greeting, List,

I'm excited to announce a new package, RayCaster-Kernel-lrnp.6, that 
includes just the Ray2D and Ray3D classes.  Also included is a new 
feature, RayProcessorObject.  I hope the code and math is easy to 
follow; you won't find ray casting code like this in tutorials!

If you're using RayCaster for teaching trigonometry, computer graphics, 
or programming and it's too hard, let me know where and I'll add 
comments!  I can correctly explain this thing in dreams I've worked on 
it so much.

First up, Ray2D has been totally refactored with the latest advances in 
my OOPing skill.  You can now piggyback off the ray's knowledge of which 
direction it's aimed while stepping to write if-free direction 
conditional code!  Take a look at the 'acceptors' and 'continuations' 
message categories.

If you thought 3D support was lacking, it's because I was having trouble 
with occlusion at edges and vertices.  Occlusion is now based on 
implementing signed axis acceptors; if you need it you can add it fairly 
straightforwardly.

For existing users, you'll want to update your class references to 
LegacyRay2D until you can upgrade to acceptors and continuations.  You 
no longer "cast" a ray, you "step" it.  I'm gonna be reusing "cast" to 
mean something else.

The major enhancement is RayProcessorObject, which is supported in the 
new Ray2D and Ray3D classes (but not the legacy versions).  Think of it 
like a filter bank you'd set up in audio mixing software, but for rays. 
Adding support for a new function, like a different virtual reality 
format, is as simple as swapping out processors.

While the -Kernel package is ready to go, and -LampDemo is updated, 
please be patient while I update the BitBlt renderer; the -Core package 
is a bit of a disaster from experimenting with different techniques and 
virtual reality models.

Check it out:
<http://www.squeaksource.com/RayCaster.html>
Squeak-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]