The Science Elf Writes — Another — Raytrace Engine for the TI-84, Offering a Dramatic Speed Boost

Designed as an upgrade for an earlier TI BASIC-based version, this raytracer can do in 12 minutes what took the original six hours.

Gareth Halfacree
4 years agoArt

Pseudonymous educator The Science Elf has put Texas Instruments' TI-84 graphic calculator work on an somewhat unusual project: Raytracing.

"Most people familiar with my older catalog of videos probably know that a while back, I already wrote a raytracing program on a graphing calculator," the Elf explains. "But that one had a few limitations that I’d like to address."

The biggest: Speed, with the original engine taking six hours to render a single image. "The reason everything is so slow is because TI-BASIC, the built-in language I used, is interpreted. In short, the processor in the calculator doesn’t run my program, it runs a program that runs my program."

Just what every calculator needs: A photo-quality raytrace engine. (📹: The Science Elf)

The solution: A new raytracer, this time written in a combination of C++ and assembler. Switching away from the old renderer to the new one has a dramatic impact in performance: What took the BASIC version six hours can now be completed in just 12 minutes.

Despite running on a calculator — which, the Elf points out, has a higher-resolution display than some classic games consoles — the resulting raytracer offers a surprising number of features: Support for arbitrary sphere and plane primitives; diffuse and reflective shading; texture-mapping; dithering; gamma-correct rendering with high dynamic range (HDR) tone-mapping; and global illumination via radiosity.

"Ti-84 calculators can now do raytracing faster, and with more photorealistic results," the Elf says. "I don't know about you, but I for one am excited that we're now one step closer to real-time raytraced Minecraft on a calculator..."

The source code and a binary file for the project has been published to GitHub under the permissive MIT License; those looking to try it for themselves, however will need a TI-84 Plus CE or later, and to use version 9.1 of the CE Programming toolchain rather than the latest release.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles