[racket] Crowdsourcing Pict3D's design
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:
https://github.com/ntoronto/pict3d
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 ⊥