SailVMG is an IOS app for recording and displaying VMG while sailing and kiteboarding. SailVMG provides visual and auditory feedback options for presenting VMG in real time, allowing the racing sailor to try new techniques and get instant feedback about their affect on VMG. VMG is the component of your speed in the upwind direction.
To use the app you simply set the wind direction using the in app compass, and start recording your session. By default the audio feedback is turned on, with pitch representing your VMG, and the rate of the pitch playback representing VMG acceleration. Upon returning to shore you can save the track, and see it on a map color coded by VMG. Tracks may be exported as a GPX file. Several stats are also displayed such as date and time, location, duration, and max VMG upwind and downwind.
The app is currently in beta testing through TestFlight. If you would like to be a beta tester, please send me an email at neil.marcellini@gmail.com. I hope to publish to the app store soon.
There were many features that I did not have time to implement. I have listed them below with the most important items towards the top. See the SailVMG Trello board for more info.
- Delete trackpoints from Firestore when their associated tracks are deleted. This requires setting up a Firebase cloud function to do so.
- Fix a bug where tracks in the list are out of chronological order.
- Switch previews between light mode and dark mode when color scheme changes after a preview has been downloaded.
- Train a ML model to predict the current true wind direction given the last few minutes of a GPS track. Use the predictions to continuously update the TWD. Recently I discovered data from the 34th and 35th America's Cup. I extracted the relevant data and uploaded it here.
- Add all trackpoint attributes as gpx extensions. Currently VMG and some other trackpoint data is not included in the GPX file.
To get setup for development you will need Xcode and git. Next, download the project with the following command.
git clone https://github.com/neil-marcellini/SailVMG.git
This project uses Cocoapods as well as Swift packages. Before running the project, open up the root "SailVMG" folder in terminal. Run the pod install
command to install the required Cocoapods. Next, double click the SailVMG.xcworkspace
file to open the project in Xcode. Select your desired simulator or device and click the play button in the upper lefthand corner to launch the app.