Monday, October 17, 2011

Minor Release


Last week I gave a demo of Touch of Math to RCOS in which I showed off the new (and still buggy) features between the last code release and now. I cleaned up the code from the demo and am releasing it as our promised "maintenance" release.

Now that we have gotten going on the project again, we are excited to be working towards the next major release whose proposed features include:

– distinguishing between variables, numbers, and constants
– variables next to each other signify multiplication
– displaying of special characters (e.g. greek letters such as σ or β)
– displaying of subscripts and multi-character variables
– interactive history (i.e. viewing and loading previous states)


We will keep you posted on the progress of this next major version,

Zach and Joe

Wednesday, October 5, 2011

Still Alive

Yes, A Touch Of Math is still alive, and we are indeed still developing it. We would like to apologize for the blatant lack of progress since last spring. A Touch Of Math had a longer summer than most, and when you add in our project lead shuffle, we ended up well into Fall.

As we gear things back up, we will be rolling out a maintenance release that ties up all the loose ends from between the last code release and now. This won't have many new features, but it will give us a more up-to-date, stable codebase for us to develop on this semester.

Look out for this update in the near future, we'll post again when its ready,

Zach and Joe

Tuesday, April 12, 2011

Version 0.2 Release!

Well here it is, the code release promised by us in our last post. It is available at https://github.com/jlabarbera11/TouchOfMath for your downloading pleasure.

To run it, simply view index.html in a web browser. To use it, type your equation into the text box, and click the display button (or hit enter). Currently, it supports addition, subtraction, multiplication, division, exponents, and summations. Dragging an element and releasing it on an element located on the other side of the equals sign will cause the original element (and any companion elements) to be subtracted/divided over to the other side.

Touch of Math works on iOS devices too, although it hasn't been thoroughly tested on iPads or Iphone 4's, so heads up. Also, multitouch is unfortunately not yet supported, but it is in the works for release in a future version.

It is worth noting that there are some font/formatting inconsistencies between the major browsers, so for the best experience, Firefox, Chrome, and Safari are recommended. Also, it may sadden you to know that Touch of Math currently doesn't run at all in Internet Explorer, but don't fret, compatibility will come.

With all that being said, just download it and give it a try, this release isn't perfect (hence the 0.2 version number), but it should give a good idea of what the core functionality of Touch of Math is about.

Enjoy,

Zach and Joe

Thursday, April 7, 2011

Progress

We apologize for the lack of regular blog posts and/or code pushes, but we promise progress is indeed being made.

A good amount has happened since the last post, we gave another presentation, showing off our fledgling, new frontend. In addition, the backend has seen many improvements, both in terms of functionality and in terms of stability/mathematical accuracy.

The frontend utilizes individually draggable <div> tags instead of the single big <canvas> tag that the original version used. Also, the equation is displayed in a more traditional and natural way (e.g. denominators being below numerators, exponents being superscripts, etc.).

As far as future versions, we will continue to improve the stability of the backend while implementing more functions (i.e. math operators). Additionally, we plan to add features such as one-sided operations and history/undo/redo.

And not to be forgotten, Touch of Math will soon be true to its name. That is to say, we intend to add touch support to our current frontend, as well as some new gestures that take advantage of multitouch recognition.

The code containing all of our current features—and maybe even some additional features—will be available within the week!

That's all for now, we will post again when the new code is available,

Zach and Joe

Saturday, February 26, 2011

Our first presentation

Hey,

Sorry not too much has been happening in this project so far, we've had a bunch of exams/job applications going on this month. But as a lot of this is getting wrapped up for now, so hopefully you will start to see updates more often.

We gave our first presentation of the semester about a month ago, and followed with several two-week goals. These were:

Design and implement a user interface
Correctly format input
Define rules for one-sided arithmetic

On the first, we hoped to use Mathjax as our interface. However, though we could display our equations, getting feedback on what terms were clicked, where they were moved, etc. was proving difficult. So instead we hoped to write our own displayer. We were able to construct an xml string from our backend, but we're still tinkering with a nice display/feedback to the backend.

The third is to avoid writing specific code for each case, much like what happened our first semester. This has been done by determining which operations will be supported, and what common rules govern them. We hope to implement:

Commutativity (a+b -> b+a)
Distribution (a(b+c) -> ab + bc)
Factoring (x^2 + 2x + 2 -> (x+1)^2) and vice versa
Logarithmic operations (There's several of them)
Variable combination (2x + 3x -> 5x)
Solver

So far, most of these rules have been defined, and we hope to write them up as soon as possible.

That's all we have to say for now, but you'll hear from us soon

Zach and Joe

Monday, January 31, 2011

New Year, New Code

School officially started about a week ago, which means Touch of Math is back in full swing. We have a new member, Zach, who will help out on the front end of things. Our goal is to use MathJax to render our equations. We plan to add a ton of new gestures too, including those for one-sided manipulations (distribution, association, logarithms?, etc).

On the back end side of things, we're looking a a totally new data structure. Currently in use is an n-ary tree that replaces our original binary tree. This removes a lot of the problems we were having with subtraction and division, as well as allows easier use for operations that aren't binary.

Also, we've been putting significant time into a lot of the suggestions that were given to us over last semester. Most notably, look for a history/undo feature, and custom features later on. We've already got more math than just +,-,*,/, and we plan to add higher mathematical operations still.

That's really all for now, we're looking forward to another great semester of development. Our newest code is here, and our original can be found here.

Thanks again!