Skip to content

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

License

Notifications You must be signed in to change notification settings

matafokka/SynthFlight

Repository files navigation

SynthFlight Alpha

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

This is a alpha version, so expect bugs, crashes, errors, missing functions, API changes, etc.

For now, it only can plan photography by a graticule or grid. However, planning by custom polygons or flight paths is on its way.

SynthFlight also features an advanced extendable layer system for Leaflet that will be released as a separate package when it'll be ready.

You can use layers to try and compare different parameters to choose which ones suites you best.

Installation

You don't need to install it, just use it online. However, if you want to have a local copy:

  1. Download the latest build for the browser (if you plan to use it in a browser) or for your OS and platform (if you want a standalone application).
  2. Extract the downloaded archive wherever you want.
  3. Run SynthFlight:
    1. If you've downloaded the browser build, open index.html file.
    2. Otherwise, navigate to the extracted folder, open it and run SynthFlight executable file.

Warning 1: only browser and Windows x64 builds has been tested so far.

Warning 2: macOS builds are not signed.

Usage

After running SynthFlight, you can see:

  1. Zoom buttons in the top left corner. You can also zoom by rotating a mouse wheel.
  2. Current cursor position in the bottom left corner.
  3. Menu button in the top right corner.

In the menu, you can:

  1. Close the menu by clicking "x" button on the top of the menu.
  2. Change map provider in the drop-down menu on the top of the menu.
  3. Add a new layer by clicking "+" button on the top of the menu. A wizard menu will show up containing:
    1. Drop-down menu where you can select layer type to add.
    2. Layer-specific controls.
    3. Cancel button to cancel creating new layer.
    4. Add button to confirm adding layer.
  4. Remove selected layer by clicking button with the trash icon on the top of the menu.
  5. Work with layers:
    1. To select a layer, click on it.
    2. Open or close a layer menu by clicking button with the gear icon.
    3. Change layer's settings by using controls in a menu. Each layer type has its own menu.
    4. Hide or show a layer by clicking button with the eye icon.
    5. Reorder layer by dragging the button with the arrows icon.
  6. Export project to GeoJSON by clicking "Export" button at the bottom of the menu. Warning: other buttons do not work for now.

System requirements

For standalone application:

  • 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.
  • CPU: One that can handle web surfing. If you can browse the internet, SynthFlight will work fine.
  • RAM: 1 GB or more.

For browser version - one of:

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

Note 1. Outdated Chromium-based browsers have a "feature" that prevents FileReader from reading local files. If you're using such browser, please, either host SynthFlight on a web server or add --allow-file-access-from-files flag when running browser.

Note 2: Some outdated browsers can't download files normally. Please, update your browser for better user experience.

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 build on an actual macOS.

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 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.

If you speak any language other than Russian or English, you can help with the translation. Locales are located at js/LeafletAdvancedLayerSystem/locales and js/SynthFlightModules/locales directories. 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, requesting API changes, new functionality or something else. Please, create an issue and describe your request.

FAQ

Can a local copy work offline?

Yes.

Why did you release such an unstable version?

To pass a subject.

Will this project will ever be finished?

Yes, because it's my master's degree.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages