[racket] Crowdsourcing Pict3D's design

From: Neil Toronto (neil.toronto at gmail.com)
Date: Sun Mar 8 22:53:00 EDT 2015

Pict3D is finally ready for public consumption. You can install the 
package either in DrRacket using "File -> Install Package..." or from 
the command line using

     raco pkg install pict3d

The GitHub page is here:


All features are documented. The API is stable. I've verified that it 
runs on Racket 6.1.1 and the current development version. There are 
reports of it working on at least two Windows systems, two Mac OS X 
systems, and two Linux systems. It might not eat your graphics card.

Current features:

  * Works in untyped and Typed Racket

  * Spheres, rectangles, triangles and quads with per-vertex attributes

  * A system of groups and affine (arbitrary parallel-line-preserving)
    transformations for sticking Pict3Ds together

  * Ray-against-scene and line-against-scene collision detection

  * Render targets: an interactive debugging view in DrRacket's REPL,
    `pict3d->bitmap` and `pict3d-canvas%`

  * big-bang3d (currently without networking)


Now we get to crowdsourcing.

I've reached the limits of what I can do without working on Pict3D 
full-time. In particular, I don't know whether the API is awkward or 
actually quite nice for the uses it'll be put to. I've drawn on some 
personal game design and coding experience, but that only goes so far.

This is where you come in.

If you've ever had the slightest hankering to do some real 3D but 
avoided it because of the pain that usually goes with it, try Pict3D. 
(If it fails to work, please submit a bug report on the GitHub page.) 
Got a visualization project? Try Pict3D. Want to make a game? Try 
Pict3D's version of Big Bang. Want to just fool around in 3D space for a 
bit? Try Pict3D, and report back on how it goes.

Anything is fair game for criticism, praise or suggestions: groups and 
pinning, distinguishing direction and position vectors, presence or lack 
of shapes you need, how to allow shader programming, file formats that 
would be nice to import models from, information that would be nice to 
have in the interactive debugging view, how to add texturing to the API, 
and even the tone of the documentation.

I'm looking forward to your reports, all my little minions. Wait, did I 
say that out loud?

Neil ⊥

Posted on the users mailing list.