PIco3e is a 3D collision engine written in PICO-8! As far with the alpha release, what it does is...
![](https://www.lexaloffle.com/bbs/files/34140/pico3e_3.gif)
![](https://www.lexaloffle.com/bbs/files/34140/pico3e_4.gif)
![](https://www.lexaloffle.com/bbs/files/34140/pico3e_5.gif)
This was the alpha version, in wireframe. It does work with arbitrary rotated bodies and solve the forces correctly. It took me about 3 weeks of learning & coding, and below is the demo cart I've been using it for proof of work.
Implemented features from reference project qu3e:
- 3D Oriented Bounding Box (OBB) collision detection and resolution
- Discrete collision detection
- Collision test via the Separating Axis Theorem
- Collision manifold generation via face-to-face method and the sutherland clipping
Token usage: 2873 (with current scene). Thus space is sufficient for some game logic. Unfortunately cpu usage is a bit high, with collision between each 2 bodies takes 5% cpu in 30 fps and doubled in 60 fps. Therefore it's assumed optimal number of bodies is <= 4.
v1.0.0 Known issues:
- edge to face collision's force center is biased
- body doesn't rotate if supporting force is aligned to mass center
- cannot handle multiple body collisions / compound forces
And especially thanks so much to @freds72 without his help I couldn't make this happen.
Aug 13th, 2019. Update with a playable scene and fixed the edge to face collision bug.
Press Z to take a screenshot when the same color faces are aligned to camera.
Modified previous work to add a centroid bar to spiral galaxies.
https://en.wikipedia.org/wiki/Barred_spiral_galaxy
Press: "x" to regenerate.
![](/gfx/play80.png)
![](/bbs/thumbs/pico8_moon_rises-1.png)
Originally from Tobiasvl's tweetcart: https://twitter.com/Spug/status/1090559155436511232
(Sorry I didn't include the link before.)
Taken from a discord's discussion, algorithm provided by @ skaarjslayer: http://itinerantgames.tumblr.com/post/78592276402/a-2d-procedural-galaxy-with-c
And also reference to: https://en.wikipedia.org/wiki/Archimedean_spiral
![](/gfx/play80.png)
![](/bbs/thumbs/pico8_gotunozosi-0.png)