/SynthFlight

SynthFlight is a fully client-side software for planning aerial photography. Run it either on the desktop or in a browser.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

SynthFlight

SynthFlight is a fully client-side software for planning aerial photography.

Run it either on the desktop or in a browser online.

Setup

Introduction

There are numerous ways to set up SynthFlight, listed from most to least preferred:

  1. PWA - works offline, requires low storage space, updates are silent and fast.
  2. Browser - that's what SynthFlight is built for.
  3. Desktop builds - works offline and has a nice UI, but requires ~100 Mb of storage. Useful for environments where PWAs are not available.
  4. Opening a local copy in a browser - it works but might impose performance issues.
  5. Outdated browser - ew, but SynthFlight got you covered.

Installing desktop builds

  1. Download the latest build for your OS and platform.
  2. Extract the downloaded archive wherever you want.
  3. Navigate to the extracted folder, open it and run SynthFlight executable file.

Warning: macOS builds are not signed, so you need to configure your system to run unsigned apps.

System requirements

For PWA

A browser that supports it.

For browser

One of:

  • Chrome 8 or later.
  • Firefox 22 or later.
  • Safari 6 or later.
  • Internet Explorer 9 or later.
  • Any other modern desktop or mobile browser.

Problems with outdated browsers:

  1. Can't read files. Chromium-based browsers have a "feature" that prevents FileReader from reading local files. How to solve: run browser with --allow-file-access-from-files flag or host SynthFlight on a custom server.
  2. Can't save files. How to solve: update your browser.
  3. App page doesn't load in legacy browsers (browser can't verify SSL certificate). How to solve: enable TLS 1.3 support in your browser or host SynthFlight on a custom server using protocols and/or certificates that your browser supports.
  4. OSM search doesn't work in browsers that doesn't support TLS >= 1.2. How to solve: update your browser. For IE9, you need to serve SynthFlight over HTTPS and make sure your users have TLS 1.2 support enabled.

Of course, requirements for TLS might change in future with the new TLS versions coming out and GitHub and OSM changing their policies. You can't prevent this from happening, the only thing you can do is using an evergreen browser.

For desktop builds

  • Operating system - one of:
    • Windows 7 or later. ARM64, x86 and x64 platforms are supported.
    • Linux with X11 installed (basically all modern distros). ARM32, ARM64, x86 and x64 platforms are supported.
    • macOS. I have no idea which versions are supported. Try and see if it works. Also, these builds are not signed.
  • CPU: One that can handle web surfing. If you can browse the internet, SynthFlight will work fine.
  • RAM: 1 GB or more.

User guide

Please, refer to the Wiki page for the user guide.

Building

If you want to build SynthFlight yourself, do the following:

  1. Install NodeJS.
  2. Download the source code and cd to the project's root.
  3. Download dependencies by running npm install.
  4. Build by running node build.js. There are additional options, to see them, run node build.js -h.
  5. When build will be finished, in project root will be dist directory containing builds for different OSs and platforms.

Warning: To build for macOS, you may need to run everything on an actual macOS. I don't have macOS, so I can't test if builds in this repo actually work.

Hosting

You can easily host SynthFlight on your server:

  1. Since SynthFlight is a fully client-side software, you can use your favorite HTTP server. So go ahead and install it.
  2. Download the browser build from here or build SynthFlight for the browser manually.
  3. Configure your server to serve index.html file in that build.

Contributing

There's a development branch which you can fork and commit to. If you plan to contribute to this project, please, notify me before doing so because I might be working on a big feature and not commit until it's ready. I'll commit more often if someone will work with me.

Translating this app will be much appreciated. SynthFlight locales can be found in locales directory and ALS locales are available here. Both of these needs to be translated. Locales are plain JS objects where key is being used in the program itself and value is a string that's being added to the page. Only values needs translation. Copy one of the locales to a new file, change locale name and translate all the values.

You can also contribute by reporting bugs or requesting new functionality. To do so, please, create an issue and describe your request.

FAQ

Can a local copy work offline?

Yes.

Will my old projects be compatible with the new ALS version?

Backwards compatibility is preserved unless noted otherwise in the release notes. However, this is unlikely to happen unless required for fixing a critical bug.

My plane crashed, images got ruined, and my dog died! Who should I blame?!

As license states, yourself :p

However, if you've encountered a some kind of error, please, report it by creating an issue.