Skip to main content

A tool to generate a table of waypoints for a treasure hunt.

Project description

GitHub License Python Version from PEP 621 TOML

3.12 3.13
tests tests
Endpoint Badge Endpoint Badge

Waypoint Weaver

Waypoint Weaver is a Python tool that generates coordinate tables for scavenger hunts and treasure hunts. It takes a set of predefined waypoints and can mix them with random coordinates to create engaging outdoor adventures.

The assumption behind this tool is that, at every station of the treasure hunt, there is a riddle that will somehow lead to an integer solution. This tool will create a table with two columns. One containing integer codes (with the real and decoy solutions) and the other containing coordinates leading to the next station (or to a random location).

In addition, this tool assumes that there are multiple teams that each start at a different station, but which should all end up at the same final location. To this end, a separate table for each team is generated, where the solution at the last station is mapped to the common destination.

Next to the team tables, two overview tables are generated for the organizers. First, the route indicating in which order the stations are passed. Second, the starting station and coordinate for each team.

Features

  • Generate coordinate tables from YAML configuration
  • Mix fixed waypoints with random coordinates
  • Create separate coordinate tables for different teams
  • Export tables in Excel, markdown, and csv format

Installation

pip install waypoint_weaver

Usage

Generate an example config file using:

waypoint-weaver get-config

You can specify a destination for the config file via -o <path>. The default value is config.yaml. The configuration will look something like this with inline comments explaining the options

# Destination where all teams should end up
destination_coord: "52.4927985225051, 13.37875885386036"

# Coordinates of the waypoints
# Each coordinate consists of 3 parts:
# - name: A note to help the organizer identify the waypoint
# - coordinate: The latitude and longitude of the current waypoint
# - solution: The solution to the riddle at the current waypoint
#   Caution! The solution will point to the next waypoint in the list (not the current coordinate). This is a bit confusing.
# The order of the waypoints is assumed to be the order in which they will be visited. The last waypoint will wrap around to the first waypoint.
# You cannot have more teams than waypoints.
coordinates:
  - name: By the swing
    coordinate: "52.49278232538021, 13.3821449269073"
    solution: 23341
  - name: In front of the bike store
    coordinate: "52.492830925278916, 13.382977953891166"
    solution: 33885
  - name: At the pontoon
    coordinate: "52.49201148456069, 13.383314498071314"
    solution: 17446

# Random coordinates are drawn uniformly at random from the given ranges.
# The number of random coordinates is determined by the count.
# The coordinates are used to create decoy waypoints.
# Solution numbers are not assigned to random coordinates.
random_coords:
  lat:
    min: 52.48680325805024
    max: 52.498326422108214
  lon:
    min: 13.372276871074952
    max: 13.380066006044846
  range:
    min: 10_000
    max: 100_000
  count: 100

After adapting the configuration to your setting, you can generate waypoint tables for your treasure hunt teams via

waypoint-weaver create -c config.yaml

assuming your config is in the same directory with name config.yaml. This will store the tables as waypoints.xlsx in the current directory. You can change the output location via -o. Furthermore, you can switch between three output formats using the -f param:

  • xls: The default which stores the output as an excel file.
  • csv: Stores the tables as a set of csv files in a subdirectory at the specified location.
  • md: Stores the tables as a set of markdown files in a subdirectory at the specified location.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

waypoint_weaver-0.2.0.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

waypoint_weaver-0.2.0-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file waypoint_weaver-0.2.0.tar.gz.

File metadata

  • Download URL: waypoint_weaver-0.2.0.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.29

File hashes

Hashes for waypoint_weaver-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6bd9713418253a0e6de2a2d13a99f48ad340e319b13cf4baaf6d20b7dfdfab59
MD5 664e3fa5a3b3e4933566d3884968a62a
BLAKE2b-256 b097d8767f01d31668e215d20e97c4a4d70fe73f0591ec0d8aaff48f7dd514d1

See more details on using hashes here.

File details

Details for the file waypoint_weaver-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for waypoint_weaver-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f2447662a20e49e430cd37736e5d4c2312df105fbaa2203d3b3c4fcaf107936
MD5 f3010aea6589e63b1b098aac72534350
BLAKE2b-256 3d8942c63eced5c6a161157857021fc509e86a4dd6ab9c9d21afc0d488577f7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page