


EuclidOS started as an attempt to build an open-source graphing calculator OS to lower the cost of graphing calculators, but it became a Java desktop application instead. I focused on plotting mathematical functions and exploring graphs interactively. I wrote the entire application in Java, using JavaFX for the GUI and Java 2D graphics for smooth plotting and zoom/pan features.
The project features a custom parser that reads mathematical expressions and converts them into evaluable functions. The graphs include dynamic rendering that supports scaling and coordinate tracking. I was also able to implement event-driven UI controls built with JavaFX to handle user input, redraws, and window resizing. EuclidOS included a primitive form of session-management via JSON storage files for saved variables and equations.
While it is not a full operating system, EuclidOS gave me experience in designing a small but complete software stack: parsing user input, computing and caching function values, and rendering visuals with responsive graphics libraries.