After nearly two years of work, a closed beta, and an open beta, I'm proud to present Graph3DC for the TI-84 Plus C Silver Edition. In the time this project has gestated, the TI-84 Plus C Silver Edition has gone from the leading member of the TI-84 Plus family to a barely-remembered third cousin of the sleek new TI-84 Plus CE, but completionist that I am, I refused to let the work I put into Graph3DC go to waste. Therefore, I present today a 3D graphing App for the TI-84 Plus C Silver Edition, capable of graphing up to five simultaneous equations in the form Z=f(X,Y). It integrates with the TI-OS, like TI's Transformation Graphing and Inequality Graphing Apps, and thus can offer 3D graphing within the TI-OS graphing tools that students and teachers already know how to use (while leaving 2D graphing instantly available to avoid any confusion). As stated in the recent Open Beta 2 news article about Graph3DC, among its most distinguish features are:
  • Rendering and rotation of 3D graphs on up to a 17x17-point grid at normal resolution, or 27x27-point grid at high resolution.
  • Simultaneous graphing of up to 5 3D equations at normal resolution, or 2 3D equations at high resolution.
  • Tracing over graphs to examine the (X, Y, Z) coordinates of points.
  • User-configurable grid colors, background colors, bounds and axis display, axis labels, and more.
  • User-settable window and zoom.
  • TI-OS integration with the Y=, Window, Zoom, Trace, and Graph tools.
  • Full compatibility with horizontal splitscreen mode.

As I once stated in the Graph3DC Closed Beta 1 news article, and have repeated ever since, one of my primary motivations behind creating (and finishing) Graph3DC was "to show TI that by releasing the keys necessary for us to write free Apps for their TI-84+CE, they'll be only strengthening that platform's appeal to students, teachers, and programmers." I wanted TI to know that the community can not only create powerful, fast games and useful programming tools for students, but can also create educational applications that are genuinely helpful in the classroom. For better or for worse, that appears to no longer be feasible, but I can say with some confidence that if I have the time, I will port Graph3DC to the TI-84 Plus CE as a non-App program runnable using Doors CE 9. In fact, had I chosen to make Graph3DC a non-App program from the beginning, I think the program would have been released months, if not years, earlier. Why? The vast majority of the time I spent creating Graph3DC was not invested in the 3D graphing, computation, and rendering code, but in building hook after hook to integrate with the OS, and more importantly, to work around OS bugs. Examining how TI's own Transform and Inequality Graphing Apps work reveals an intricate set of hooks to make the Y= menu work properly when augmented by an App's extra features and much more. Graph3DC drew heavily on my experience creating Doors CSE for the TI-84 Plus CSE, requiring me to make cursor hooks to make the flashing Plot1 to Plot 3 cursor in the Y= menu work properly, a key hook to skip to a correct Z= equation in the Z= menu when the OS's own features didn't quite work properly, myriad redisplay hooks to work around quirks in the OS's implementation of horizontal split-screen mode, and so many more. Although I'll have to implement my own input routines for a theoretical Graph3DE for the TI-84 Plus CE, I suspect that the development time will be significantly decreased with the burden of interacting with the TI-OS removed.

Without further ado, please enjoy Graph3DC at the download link below. If you'd like to explore some fun 3D equations right out of the box, take a look at the included readme PDF, and also refer to the equations and screenshots posted by tireless beta-tester PT_. In fact, I'd like to thank everyone in the community who helped test Graph3DC and who encouraged me to press onwards even when the project felt insurmountable. If you're a teacher, I would especially be interested in hearing from you, but I hope anyone will feel free to share comments, questions, and suggestions for future versions.

Claims of an easter egg embedded in the App are completely unfounded.

Graph3DC 1.0 3D grapher for the TI-84 Plus C Silver Edition

Very cool! I'm sure this will have lots of positive implications for a wide audience. I look forward to using this someday. I applaud all the dedication and time that has gone into this over those years. It shows and the result is amazing!
Thank you for the kind words, comic. I'm just happy to be able to hopefully make some students' and teachers' lives a little better, and perhaps make some math a little easier to visualize.
KermMartian wrote:
To Do:
  • 2D Horizontal mode, then go to the Y= menu, then press the left arrow to get to the linestyle menu, the go down and select CLEAR, it makes [mr womp womp's] calc go crazy. Can't replicate on hardware or emulator, so I guess, fixed?

Oddly enough, my calc does not do this with the new release! therefore, I guess whatever has been changed has probably fixed it Razz
Also, great work on ironing out the bugs, I've installed the official release and was no longer able to replicate any of the bugs (not very surprising since you said you had fixed them but whatever)
This program is quite a huge project and I'm happy you decided to finish it regardless of the rapidly declining popularity of the ti-84 PCSE. I haven't been here for "all deez years" like comic has, but I've seen some versions of 3D graphers that you had designed for the monochrome calcs a long time ago and I'm excited to see it evolve into the world of color calcs. Who knows, maybe in 10 years you will be porting this to a ti-84 PCE CAS with a touchscreen and holographic display (of course running on an Intel 8008, because that's just how ti rolls Wink)
Haha, thanks for that, mr womp womp. I appreciate the thanks, opinions, and criticisms of community members old and new, and yours mean a lot to me. Your forecast for my porting in ten years sounds like something I'd very much like to be doing, if graphing calculators still exist at that point! And I'm also extremely happy to hear that you haven't been able to replicate any bugs; although I thought I had ironed them all out from my own testing, it's always a relief to hear confirmation that you guys haven't run into bugs either.
The moment when a third-party 3D graphing add-on graphs several times faster than TI-OS' built-in 2D graphing...

Great job Kerm. I was sad when I read a post saying this might be dead and hoped you would still consider releasing Graph3DC. What I like the most in it is how well it is integrated into the TI-OS, as if it was part of it. Smile
Thank you very much, DJ_O! Yes, I strongly considered not bothering to finish this when I learned it would probably be impossible to port it to a TI-84 Plus CE App, but I gradually re-thought my views on that, especially as I sunk deeper and deeper into working around TI-OS quirks and bugs on the TI-84 Plus C Silver Edition. Actually, I believe it's roughly the same speed, because it's constrained by roughly the same code in the end: the TI-OS on the TI-84 Plus C Silver Edition calls the parser on your Y= equations 265 times for the 265 pixel columns of the graphscreen, while in low-resolution mode, Graph3DC calls the parser on your Z= equations 17*17 = 289 times. Because Graph3DC uses two independent equations per point (X and Y, that is), each of those parser calls is necessarily slower.
I've found a function which, while giving the correct heatmap, will fail to give the z axis enough depth to actually see the contours of the surface being graphed. This occurs when graphing the function:

over the bounds 0 to 100 for both x and y.

I may be missing something here, please inform me if I am, as I would love to be able to graph this sort of function.

Here is the resulting graph, so you can see the issue itself:

This is in stark contrast to Octave's output, which looks as follows:

Sorry for all of the pictures, I just wanted to get the issue across to you as efficiently as possible.
Welcome to Cemetech! You've detected an interesting difference between how Octave and Graph3DC decide to scale axes. Octave scales them so that your graph ends up roughly filling the extents of a cube, while Graph3DC makes sure that a (1, 1, 1) cube in graph space is actually cubic (ie, the axes have the same step size). You can manually exaggerate the Z-axis scale of the graph by throwing in an extra coefficient on the front of the function. Hope this helps!
KermMartian wrote:
Welcome to Cemetech! You've detected an interesting difference between how Octave and Graph3DC decide to scale axes. Octave scales them so that your graph ends up roughly filling the extents of a cube, while Graph3DC makes sure that a (1, 1, 1) cube in graph space is actually cubic (ie, the axes have the same step size). You can manually exaggerate the Z-axis scale of the graph by throwing in an extra coefficient on the front of the function. Hope this helps!

Ah, that would make sense. Thank you.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum