skip to content
[readonly]

doom, a DDA raycaster as a resident mesh GPU program (one lane a column, the pose and keys on the GPU, split across machines), as PTX from C

sh
$ sexc add @ajax/mesh-prog-doom
  • total 3
  • drwxr-xr-x-../
  • drwxr-xr-x-Oct 27 03:26v/# 1 version
  • drwxr-xr-x-Oct 27 03:26files/# the files of 0.1.0
latest
0.1.0, published Oct 27 03:26 by ajax
owners
ajax
license
MIT
dependencies
@ajax/mesh-rt ^0.1.0, @ajax/mesh-rt-sim-mailbox ^0.1.0, @ajax/mesh-ref-doom ^0.1.0, @ajax/mesh-check ^0.1.0
dependents
none yet
keywords
mesh alphaos gpu ptx program raycaster doom
homepage
https://github.com/thomasdavis/alpha-c-mesh/tree/main/programs/doom
repository
https://github.com/thomasdavis/alpha-c-mesh
==> README.md <==
1# @ajax/mesh-prog-doom
2
3A DDA raycaster, one lane a screen column, 4 tasks a frame. The frame's arg-0 task drains the input
4queue (w s a d q e) into the pose with wall collision and releases it; the frame's other tasks wait for
5it, bounded. Split across machines (`place = "split"`), followers render with OP_FOLLOW at the pose meshd
6wrote. Layout: @ajax/mesh-abi-view-doom.
7
8- **Ported from:** alpha-rust-mesh `programs/doom/src/lib.rs`.
9- **Tests:** kcheck's checks 3 and 3b (and 3c's follow) on the simulator, against @ajax/mesh-ref-doom
10  bitwise: the map and start pose after OP_INIT, seven poses' frames (kind, side, distance and height of
11  every column), 75 keys through the input queue with the pose bitwise equal to the reference's every
12  frame, a follow that moves nothing, and no stalls.