GeoGebra Summer of Code 2015
This summer, GeoGebra was again part of Google Summer of Code (GSoC) supporting young and talented open source coders. We had a very strong field of 64 students applying and were able to choose 4 of them to work with us during this summer. There were also some impressive contributions submitted by many of the other candidates which have already been incorporated into GeoGebra.
Yi-Chun (Jacky) Kuo: Native iOS App
Our current iPad app is based on a WebView so we were interested to see if Jacky could make a prototype of a native app using the quite-new RoboVM cross-compiler to convert GeoGebra’s Java code into Objective C. As part of his application he managed to get the JLaTeXMath formula engine working which was very impressive in its own right. For the first half of his project he got the full GeoGebra kernel compiled and running and for the second half he worked on drawing objects and user-interaction.
There is still a lot to do before we can make a release (for example implementing the toolbar and equation editor) but Jacky will stay on with GeoGebra after GSoC to help!
GeoGebra running in Xcode
Georgios Ouzounis: Handwritten Equation Recognition
Handwritten equation recognized!
Georgios made a nice web app as part of his application to collect example handwritten equations from phones and tablets and store them in a database. This was important as it allowed him to use that data when testing and training his algorithms. The three parts to his project were:
- splitting the equation into its symbols
- recognising the symbols
- converting that back into GeoGebra syntax
and by the end of his project it was successfully recognizing indices, fractions and square-roots. At the moment the code is running server-side and is a little slow so the challenge for the future will be to get it running faster and client-side. Open Source libraries used: OpenCV
Thilina Madumal: Intersection Project
Polygon Intersections in 2D and 3D!
As part of Thilina’s application, he adapted the Clipper library to compile with Java 6 and with GWT and incorporated it into GeoGebra, which he then used as part of his main GSOC project to improve the polygon operations within GeoGebra.
He has also done a lot of work on improving the Intersect command to allow the intersection of many more object types to be calculated dynamically.
Shamshad Alam: Implicit Curves Project
cos(x y) = k
x⁴ + y⁴ + z⁴ = 2
Shamshad also made some nice experiments with the Clipper library as part of his application
The main focus of his GSoC project was to implement plotting of implicit curves and surfaces, namely:
- plotting of non-polynomial implicit curves (for example you can try sin(x) – sin(y) = 1 in GeoGebra Beta)
- plotting of implicit surfaces (eg x⁴ + y⁴ + z⁴ = 2)
- extending commands for rotation, translation and other transformations to work with these object types
Thanks to all our GSoC students for a great job done during this summer!