Skip to content

asaintsever/tinyworld

Repository files navigation

TinyWorld

Travel the globe from your photos. You'll see how small the World is.

License GitHub All Releases Docker Pulls Latest release

Important

This project is still WIP.

Features

  • Catalog your photos: metadata extraction & thumbnails generation
  • Geolocalize photos on virtual globe with metadata in annotations
  • Search & filter capabilities to easily navigate your photos (by dates, countries, ...)
  • Offline mode (use local cache for globe data)
  • Available as portable app, AppImage package, DMG package and OCI image (i.e. container)

Supported Photo Formats

  • JPEG/JPG
  • PNG
  • HEIF/HEIC

Requirements

  • Windows (x64) or Linux (x64 or aarch64) for Portable App
  • Linux (x64 or aarch64) for AppImage
  • macOS (aarch64) for DMG package
  • Docker or Podman for OCI image

Configuration

See TinyWorld Configuration

Run

Using Portable App

Untar/Unzip downloaded portable package (several flavors available: with Linux JRE x64 or aarch64, with Windows JRE x64) then run provided TinyWorld script:

# On Linux (x64 or aarch64)
<TinyWorld folder>/tinyworld.sh

# On Windows (x64)
<TinyWorld folder>\tinyworld.bat

By default, 4Gb of memory is set via Xmx/Xms Java options: edit the script to change any Java options.

Using AppImage on Linux

chmod +x tinyworld-<x86_64|aarch64>-<release version>.AppImage

./tinyworld-<x86_64|aarch64>-<release version>.AppImage

By default, 4Gb of memory is set via Xmx/Xms Java options. You can override this and add other options using the JAVA_OPTS env var:

# E.g. 2Gb max, 1Gb min
JAVA_OPTS="-Xmx2048m -Xms1024m" ./tinyworld-<x86_64|aarch64>-<release version>.AppImage

Using DMG package on macOS

Download the DMG package and double-clic on the file. Drag and drop the application icon to the Applications folder to install the application. A TinyWorld app should now be available in the Launchpad.

Using OCI Image

<docker|podman> run --rm -e DISPLAY -v "$HOME/.Xauthority:/root/.Xauthority:rw" -v "$HOME/.tinyworld:/root/.tinyworld" -v "$HOME/var/cache:/root/var/cache" --network host asaintsever/tinyworld:<release version>

By default, 4Gb of memory is set via Xmx/Xms Java options. You can override this and add other options using the JAVA_OPTS env var:

# E.g. 2Gb max, 1Gb min
<docker|podman> run --rm -e DISPLAY -e JAVA_OPTS="-Xmx2048m -Xms1024m" -v "$HOME/.Xauthority:/root/.Xauthority:rw" -v "$HOME/.tinyworld:/root/.tinyworld" -v "$HOME/var/cache:/root/var/cache" --network host asaintsever/tinyworld:<release version>

From Source

Requires GNU Make 4+, Java JDK 17+, Maven 3+

See instructions.

Build

Requirements

  • GNU Make 4+

    On macOS, you can install/update GNU Make using brew: brew install make

  • jq (used to parse responses from GitHub API)

  • Maven 3+

  • Java JDK 17+

  • zip/unzip (to generate TinyWorld portable app for Windows)

  • Docker or Podman (to generate TinyWorld OCI image)

  • FUSE (to generate TinyWorld AppImage)

    On Ubuntu / Debian, install required FUSE library using sudo apt install libfuse2

    On Chrome OS, install required FUSE library using sudo apt install fuse

Note

For AppImage and DMG (macOS) packages, you'll only be able to generate the package for the platform you're running on (e.g. aarch64 AppImage if you use an arm/aarch64 platform).

Building from Source

You need to init your environment the first time (will install WorlWind jar and sources into your local Maven repo):

make init

Then you can generate all supported packages:

# Build portable app
make gen-portableapp

# Build AppImage
make gen-appimage

# Build OCI image
make gen-oci-image

# Build macOS DMG package
make gen-dmg

Releases

Instructions to release new versions of TinyWorld are available here.

Contributing

See Contributing Guide

Deps & Credits

TinyWorld is built upon lots of great projects. Main ones are:

Thumbnails for HEIF/HEIC photos are generated using ImageMagick.