VB Gadgets presents...
"Just as a photon presents itself to the observer as both a wave and a particle, so Photon is humbly presented to you as both a calculator and a graphing tool."
Windows Installer
Download this if you want a standard Windows installation. Includes uninstaller.


Click here to go to the extensions page  a collection of free code you can manually install to supercharge Photon!
Photon  Version 2.4.2.4 (April 28, 2017)
VB Gadgets is excited to bring you a graphing calculator that looks better, runs faster, and can do much more than its predecessor  ParaGraph 6.5.2. ParaGraph was written in Visual Basic 6, a grumpy old language that could use some updating. Photon was written in Visual Basic.NET with Visual Studio  a more current and powerful programming language.
Keep reading for more information about Photon, or check out the help page if you're confused about how Photon works.
Keep reading for more information about Photon, or check out the help page if you're confused about how Photon works.
How to get Photon
You can download this program by clicking one of the links above. If you're prompted to run the file or save it, choose to save it. You can put this executable program anywhere on your computer, but it's recommended to save it to a location where it won't be moved. Alternatively, you can just run the installer and have all this done automatically.
Compatibility:
Photon runs on Microsoft's .NET framework 4.6. If you're having problems with Photon, it could be that you need to install this framework. The .NET Framework 4.6 is free from Microsoft, and can be downloaded here.
Most machines running Windows Vista, Windows 7, Windows 8, or Windows 10 should already have .NET 4.6. Windows XP does not by default, so you'll have to install the framework yourself if you haven't already.
Compatibility:
Photon runs on Microsoft's .NET framework 4.6. If you're having problems with Photon, it could be that you need to install this framework. The .NET Framework 4.6 is free from Microsoft, and can be downloaded here.
Most machines running Windows Vista, Windows 7, Windows 8, or Windows 10 should already have .NET 4.6. Windows XP does not by default, so you'll have to install the framework yourself if you haven't already.
Change Log
Updates from 2017:
2.4.2.4 A few more bug fixes  these ones were program halting, although they were rather uncommon.
2.4.2.3 Minor bug fixes regarding text rendering.
2.4.2.2 Performance update  The Photon executable is now 17 KB smaller than before due to the removal of "junk" debugging code. In theory, Photon should run slightly faster now, although the difference appears to be negligible so far. Additionally, a few small bugs have been fixed.
2.4.2.1 A rather nasty bug that has been in place most likely since version 2.0.0.1 has been fixed. This bug made Photon virtually unusable for expressions longer than about 30 characters (due to an inefficient regex string), which is terrible! This is a very bad mistake on Photon's part, and VBGadgets apologizes for any inconvenience this may have caused. The bad regex sequence has been removed. Other such performance halting bugs likely do not exist, as Photon's speed is now back up to lightingfast standards.
2.4.2.0 Scientific notation now renders properly when viewed as an image.
2.4.1.0 You can now perform line integrals through a vector field. To do so, just plot a line as well as a vector field and Photon will automatically assume you're looking for the line integral. The calculated answer will appear in the same manner as a regular integral. This works for lines drawn in the 2D xy plane as well as 3D parametric lines in 3D vector fields. Additionally, if you're wondering, surface integrals through 3D vector fields (flux) is not planned to be added to Photon's abilities.
2.4.0.0 Yet another feature: vector fields! Both 2D and 3D vector fields are now possible in Photon. Enter vector equations using x and y (and z if in 3D) using ihat / jhat notation. To scale the drawn size of the vectors, add a semicolon and a number. For example, "2/x*i + 3*j; 3" draws the ij vector field with a scale value of 3. If you don't include a scale value, a default value of 4 will be used. If you have a zero vector in one of your directions, you must include that in your vector equation, like 0*i + y*j.
2.3.0.1 Another bug in the equation rendering system has been fixed.
2.3.0.0 Wow, these large updates just keep coming! This one brings a new graphing mode  parametric 3D surfaces (a multivariable calculus concept). Before, the only type of 3D surface you could graph was the standard z = f(x, y). Now, you can plot surfaces that are defined parametrically, using u and v as your parametric variables: x = f(u, v); y = g(u, v); z = h(u, v).
An example has been added in the "help" dropdown menu in case you forget what to do.
2.2.0.0 Calculating sums is now possible! Use the variable 'k' for your increment, and use semicolons to denote the starting and stopping value of k. For example, 2*k; 0; 4 = 20, refers to the sum of 2*k from k = 0 to 4.
2.1.0.0 In this update, you now have access to a large reference of commonly used mathematical equations, such as rules for differentiation, or the area of a circle. There are 176 mathematical reference equations with this update. Obviously, there are bound to be additional equations that have been missed; they will be added with future updates. To access this new feature, just click on the book icon at the top. (The code writing icon has been updated to more closely resemble its meaning.) This update was made possible with the inclusion of the new text rendering system put in place with the 2.0 update. Additionally, some more bugs were fixed in the text rendering system.
2.0.0.1 As expected, some bugs were found in the text rendering system, and have been fixed.
2.0.0.0 A massive update! You can now display the equations you type in as you would see them written on paper. Check out the updated settings on the "Behavior" tab, or just press CTRL+R to get going right away! (Actually, you don't have to; the new setting is enabled by default!) When the setting is enabled, just move your mouse over the history box, and the line of text you're over will be displayed graphically.
1.4.0.0 Sequential plots are now available. Use the variable 'n' instead of 'x' to activate sequential plots. Also, you can now evaluate factorials using exclamation marks instead of typing 'fact()'. And, two new functions have been added, allowing you to find the greatest common factor (gcf) and the lowest common multiple (lcm) of two numbers. And lastly, if you're curious about some under the hood stuff, Photon's text recognition algorithms now use regex logic to match plot types, allowing an altogether smarter system. This is important for a host of reasons that may take too long to explain  the important part is that Photon is better than ever!
1.3.9.6 Just a few small bug fixes.
1.3.9.5 A small bug that caused too much text to be selected when focus was directed away from the window has been fixed.
Updates from 2016:
1.3.9.4 The x, y, and z axis now become a dotted line when behind the surface of a 3D graph. This allows for a better 3D viewing experience. Additionally, a programhalting bug has been fixed.
1.3.9.3 A data sorting issue has been fixed. Also, some unit conversions have been more precisely defined.
1.3.9.2 A small bug regarding copying and pasting has been fixed.
1.3.9.1 A small bug regarding fonts has been fixed.
1.3.9.0 You can now paste data into the XY data sheet from other spreadsheets. Just press CTRL+V to paste data. Data will begin pasting at the top of the column, even if your cursor is in a different cell.
1.3.8.1 Minor bug fix regarding text selection.
1.3.8.0 Parentheses are now highlighted to make text entry easier. This feature can be turned off from the settings page.
1.3.7.5 More text entry optimizations have been implemented, and a bug with imaginary numbers has been fixed.
1.3.7.4 Dyne force units were bugged; the issue is fixed.
1.3.7.3 A very minor bug regarding text entry has been fixed.
1.3.7.2 Text entry for UV transformations has been optimized.
1.3.7.1 UV transforms now get saved if you save a file.
1.3.7.0 UV transforms (used in multivariable calculus) are now possible! For three dimensional plotting, the transforms are UVW. Transform your coordinate system by right clicking the plotting range and clicking the last option, titled "UV transformations." Some small bug fixing also comes with this update.
1.3.6.0 3D plots are now smoother in appearance and can be scaled vertically by scrolling the mouse on the edge of the viewing range. Smooth plotting can be turned off by unchecking the antialiasing box in the options pane.
1.3.5.0 You now have the option to draw black lines on a 3D graph. The option is included on the settings page.
1.3.4.3 Scientific notation interpretation was bugged but is now fixed.
1.3.4.2 Screen clipping was added for 3D surfaces so faces that get really close to the viewing perspective don't distort the view.
1.3.4.1 3D graphs now have a better default viewing angle.
1.3.4.0 Pesky asymptotes no longer show up in graphs.
1.3.3.0 Solving differential equations has been optimized to produce more accurate results.
1.3.2.4 A small bug regarding order of operations was fixed, and a bug with plotting slope fields was fixed.
1.3.2.3 Because four elements have received new names, Photon's periodic table has been updated.
1.3.2.2 Fixed a small bug regarding the speech grammar file.
1.3.2.1 I'm hunting down as many bugs as I can find! Photon interprets multiple lines of text differently, using "A" now works in variable definitions, and some code has been optimized.
1.3.2.0 Added support for tracing in 3D parametric equations and using the animation variable "A" for 3D surfaces and 3D parametric equations.
1.3.1.0 Photon can now graph 3D parametric equations! For example, type "x = cos(t); y = sin(t); z = t/5" to get a spiral.
1.3.0.5 Two bugs squashed  typing ">" crashed the program, and another bug was associated with minimizing the window.
1.3.0.4 Two other bad input places caused the program to crash, but have now been fixed.
1.3.0.3 Typing bad input into the animation limits caused the program to crash. The issue is resolved.
1.3.0.2 Grid squares for the 3D plots were overlapping, resulting in an effect that looked like they were changing colors very slightly. This issue is resolved.
1.3.0.1 The answers to multiple numeric integrals were displayed backwards  they are now displayed in the correct order.
1.3.0.0 User defined functions are now possible! You can now create your own addons for Photon by writing custom VBScript code. Click the book icon in the top right corner of the window to access the code page.
1.2.0.7 If your computer's language settings were not set to English, there was a chance that Photon could crash because of unexpected number formatting rules. Photon is now specifically set to English so that these issues don't occur.
1.2.0.6 Several error management fixes have been put into place. The program would crash with certain bad inputs; the issue is resolved.
1.2.0.5 On the unit conversions page, if the numeric answers were displayed in scientific notation, zeros were cut off of the exponent. The bug is fixed.
1.2.0.4 Because it's only possible to plot one 3D graph at a time, entering a second 3D equation will cause the first one to be removed, just like with slope fields.
1.2.0.3 You can now graph solutions to slope fields. Simply click the viewing area while a slope field is plotted.
1.2.0.2 A very minor issue with the function tables has been fixed.
1.2.0.1 A very minor issue with the settings interface has been fixed.
1.2.0.0 Another major update: 3D graphing is now possible! Enter functions in the form z = f(x, y) to get a colorful, threedimensional graph that you can rotate with your mouse and zoom in or out with your mouse wheel. For example, type (x^2  y^2) / 5 and watch the 3D graph happen! You can only have one 3D graph at a time, and you cannot simultaneously plot 3D graphs and regular 2D graphs at the same time.
1.1.0.0 HUGE UPDATE: Photon has been reworked in a major way! Certain tasks are easier to get done and some new features have been added. At face value, things don't seem to be all that different, but they are! A row of buttons has been added to the top left area of the window. A quick description of each new button is below.
 First button: Takes you back to the main graphing window.
 Second button: Function tables  every time you graph a function, its x and y values will be added to a function table.
 Third button: Data entry  this has been reworked from the previous version to be easier to use  just enter your data and you're all set. Best fits and statistical information are just a click away.
 Fourth button: Matrix calculator  not much has changed from the previous version, except that your matrix calculator no longer has its own window, making things easier to use.
 Fifth button: Unit conversions  a brand new feature! Using this is pretty straightforward.
 Sixth button: Settings  also moved out of its own window; the moment you click anything, the settings will be changed and saved. You can still revert your settings with the reset button.
1.0.5.1 Drawing on your coordinate plane for 'simple' fits is now guided by the grid lines  zooming out will therefore cause numbers to be rounded to higher multiples. Additionally, the 'simple' fit equations are only expressed with fractions if you are in fraction mode. Finally, two new draw modes have been added  simple quadratic and simple cubic, bringing the total number of draw modes to six. These draw modes work similarly to the simple linear mode.
Updates from 2015:
1.0.5.0 You've got a cool new feature available to you! Use the right mouse button to draw a line in your coordinate plane and Photon will graph a function that fits your line. There are four types of drawing modes:
 Simple linear: creates a linear function with a simple fractional slope and fractional yintercept.
 Linear, Quadratic, Cubic: uses least squares regression to find the best fit line of the selected type.
1.0.4.2 A new function has been added to Photon: atanxy(x, y). This function returns the angle in degrees or radians created by the point (x, y) and the origin, where the +x axis marks 0 degrees. Also, the GUI setup has been slightly modified  the speech button used to crowd out the text entry box, but not anymore.
1.0.4.1 Photon crashed when no microphone was detected. This is now fixed.
1.0.4.0 Two large features come with this update: implicit equation graphing and speech recognition. Learn more about these features by going to the help page.
1.0.3.3 A small bug with fraction mode has been fixed.
1.0.3.2 Fraction mode has been upgraded to include searching for factors of e. For example, if fraction mode is enabled, and you type "4e/6", this will be reduced to 2e/3. So now, fraction mode reduces factors of e, factors of pi, irrationals, and of course, fractions.
1.0.3.1 You can add convenient parenthesis while typing rational expressions by typing a question mark (since it's the shifted slash  what you would type to divide). For example, type 2x+1, then type a question mark, and it will be turned into (2x+1)/(), ready for you to finish typing the bottom half of the fraction.
1.0.3.0 Photon can now plot slope fields. Example: type y' = sin(x+y)
Updates from 2014:
1.0.2.7 Photon crashed under two certain conditions; those issues have been removed.
1.0.2.6 Using more than one random number at a time resulted in the same number being generated. Also, random numbers caused the program to crash if used in a certain way. These issues are resolved.
1.0.2.5 There was a significant issue when using fraction mode and the 'ans' variable  incorrect answers were being consistently calculated. The issue is resolved.
1.0.2.4 Photon crashed when it tried to save to a file. The issue is resolved. Additionally, opening files worked, but the graphs were not always plotted in the viewing range. This has also been fixed.
1.0.2.3 Digit grouping disabled scientific notation. This has been resolved. If a number is large or small enough to warrant scientific notation, it will be used instead of digit grouping.
1.0.2.2: Sine curve fitting did not actually work beyond very simple cases. The option has been removed until a stronger implementation can be found.
1.0.2.1: Data points did not properly graph when either of the axis scales were in logarithms. Data points now graph properly.
1.0.2.0: Added digit grouping with commas  "1000" now becomes "1,000". This setting can be disabled in the options menu. Also, the ability to fit a sine curve to data was added.
Updates from 2013:
1.0.1.1: Fixed a bug that caused animations to not work properly with parametric functions.
1.0.1.0: Added matrix functionality. Type "matrix" or "{" into the calculation text box to bring up the matrix window. Also added nPk and nCk functions.
1.0.0.5: Resolved a bug that was interfering with fraction mode when the "ans" variable was used.
1.0.0.4: Resolved a bug involving clearing text, using the mouse to zoom in or out of the graph, autofixing text, as well as some bugs regarding the mod(), acsc(), asec(), toCompZ() and iAdd() functions.
1.0.0.3: Applied several bug fixes and added two math functions to the library  iSqrt and sgn.
1.0.0.2: Rearranged the functions in the order they appear in Tools > Insert Function, and fixed a typo within the program.
1.0.0.1: Forced a white box to appear behind the information boxes (like integration and tracing) to ensure that the user can see the information in the box, even if part of the graph is behind the box.
Photon recognized on Softpedia
Photon has been thoroughly tried and tested by Softpedia (an online collection of software) and declared to be 100% clean on this page. In fact, Softpedia liked Photon so much, they've added it to their database of downloadable software! You can check it out here.
