Hydroscope is built on a solid code foundation which, despite being very flexible and allowing rapid innovation, remains robust to most bugs and minimise computation times to reduce the cost of mistakes.
50k
lines of code
752
commits
8%
code coverage
6
sub-libraries
documentation #
The code that runs Hydroscope is carefully documented, on all the critical functions, allowing easy debugging and the efficient cooperation of the development team.
testing #
Hydroscope has protected all the key functions of the code, by submitting them to a battery of tests, which are run on each update to the code, checking that the code performs according to expectations in all scenarios. Currently, Hydroscope has a test coverage of 8% with only the critical functions protected, but Hydroscope aims to grow this number by extending code protection to all the less critical functions (IO functions/user-interface) which make up a significant chunk of the code.
unit safe #
Being an engineering firm, Hydroscope knows the importance of correctly handling units. That is why our code uses unit tracking libraries which associate units to all the physical variables within our code, ensuring that each operation in our code provides results in the correct units. This protects our code from one of the most important source of bugs in engineering code.
Also, dates and times in the code are all in UTC, removing needlessly complex timezone conversions altogether.
limited AI use #
Hydroscope isn’t the result of a vibe coding session. It’s the fruit of a year and half of patient meticulous human development, where several iterations where required to find the appropriate code structure that can accommodate all forms of sailing data coming from any sailing yacht.
During this development, to get to grasp with some new libraries and tools, the development team has used LLms to generate code examples for new libraries. But these code examples, after having been thoroughly tested were carefully integrated into the Hydroscope framework, assuring that AI generated code was put to the same standard as human generated code.
data parsimony #
As data size grows, so does the computation time, meaning that with large datasets, small mistakes can cost a lot of time. Hydroscope minimises this risk, by reducing the size of data to a minimum, with highly optimised code, and highly compressed formats, using the latest libraries built in Rust to reduce the computation times down to a minimum.
graphical user interface #
A Graphical User Interface (GUI) is used to interact rapidly with the code especially for the data logging and data analysis, as well as for the ship modelling. It is a useful tool to interact rapidly with the code.
file management #
Hydroscope makes use of the CRUD data management paradigm, saving all your data in a human-readable format. Navigations .nav, weather situations .wxs, weather models .wxm, tracks .nvtr, ships .shs, parts .shp, polars .poltw and many others objects are all stored safely and can be accessed from anywhere in the code.
object orientation #
Most of the code is object-oriented, allowing for an easy propagation of modifications of the code without breaking important links between variables. This vouches for the robustness of the code as well.