← Apps
Wayfinder icon

Network

Wayfinder

A Mac maps app with place search, directions, traffic ETAs and a 3D drive view.

Get for Mac
.dmg · 1.6 MB · or download .zip
–views
Category
Network
Requires
macOS 13+
Size
1.6 MB
Price
Free

Preview

Screenshot of Wayfinder running on a Mac

About Wayfinder

Wayfinder is a navigation app for the Mac in the spirit of Google Maps and Waze. You search for a place, pick Drive or Walk, compare up to three routes with their travel time, distance and arrival time, and follow the one you choose turn by turn.

What it does

  • Search. Suggestions as you type, results as pins and a list, and saved places and recent searches.
  • Directions. Drive or Walk, alternate routes with the fastest marked, a Swap button and a step-by-step list. For driving, the arrival time uses Apple's traffic estimate where Apple provides one, and the app says so.
  • Your location. The app asks macOS for your real position. If that is off, or your Mac cannot locate itself, you can set your location by hand and switch back with "Use my real location".
  • Navigation. Start follows your real position, and Preview drive runs a simulated drive along the route at 1x to 8x, clearly labelled.
  • 3D Drive. A second view that draws the roads around you in 3D from OpenStreetMap data.
  • Reports on this Mac. Mark police, crashes and hazards. They are stored only on your Mac, and no other drivers see them.

How it was made

One prompt in the SiliconDevKit desktop app, with the original project's link in it. The cloud adapted the original iPhone 3D map code for the Mac, and a Mac compiled it. The original's map data source no longer works, so this version uses OpenStreetMap roads instead.

Notes

This app was built in the desktop app's unsafe mode, from someone else's code, so it is not a template, and SiliconDevKit has not reviewed that code. The 3D view is based on the 3D-GPS-location-map-rendering-game-base project by nenuadrian (MIT license). Places, routes and traffic come from Apple Maps, and there is no crowd-sourced Waze data. The 3D view needs the OpenStreetMap Overpass service to be reachable. The screenshot shows the Map view with a route and the manually set location. We did not check live location, spoken directions, the 3D view or the reports end to end.

Information

Developer
SiliconDevKit (generated by AI from a prompt)
Category
Network
Compatibility
macOS 13 or later, Apple silicon. Apple silicon Macs only (M1 or later), not Intel
Size
1.6 MB (.dmg)
Latest version
1.0
Price
Free
Signing
Ad-hoc signed, not notarized

The prompt behind it

This app was generated from the prompt below. Paste it into SiliconDevKit to build your own version, then change it however you like.

Build a Mac navigation app called Wayfinder, in the spirit of Waze and Google Maps: search for places, get driving and walking directions with ETAs and alternate routes, see traffic, and follow a route turn by turn in a 3D drive view. Use this small open-source iOS SceneKit map renderer as the starting point for the 3D drive view: https://github.com/nenuadrian/3D-GPS-location-map-rendering-game-base-swift-ios-scenekit The goal is a polished, working Mac maps app. Be honest about what is real: your position comes from the Mac's location services, places, routes, ETAs and traffic come from Apple MapKit, and the 3D road map comes from OpenStreetMap. There is no crowd-sourced Waze data, so do not pretend there is. HOW TO PORT IT (read this first) - The repo is in Imported/. It is tiny: read README.md, then HW/World3D.swift, MapTile.swift, MapScene.swift, CameraNode.swift, PlayerNode.swift, Utils.swift, LocationMaster.swift and Constants.swift. Ignore HW.xcodeproj, the storyboards, the asset catalogs, Cartfile, the PDF, AppDelegate.swift, API.swift, APIHelper.swift, Logging.swift, SwiftyJSON.swift and VectorMath.swift (do not copy those two libraries; use URLSession and JSONSerialization). - What the repo does and what to keep: it renders the real world as a grid of square map tiles in SceneKit (zoom 16 tiles, each drawn as an SCNPlane textured with the roads for that tile), keeps the player as a sphere, and has a camera that orbits the player (pan to rotate around it and tilt, with the tilt limited so it never goes underground or too high). Keep that design: the tile grid around the player (Constants.TILE_RANGE), the tile math in Utils (tile index to lat/lon, lat/lon to Web Mercator meters), the primordial-tile origin so numbers stay small, the orbiting camera with limited tilt, and the fog. It is an iOS app (UIKit); port it to macOS: SCNView hosted in SwiftUI with NSViewRepresentable, NSColor and NSImage or CGContext instead of UIColor and UIGraphicsBeginImageContext, mouse drag and scroll wheel and trackpad pinch/rotate instead of UIPanGestureRecognizer. - What is broken in the repo, fix it: (1) its map data source is a discontinued Mapzen endpoint and the tiles come out blank. Replace it with OpenStreetMap roads from the Overpass API (https://overpass-api.de/api/interpreter, with one fallback mirror, https://overpass.kumi.systems/api/interpreter). Request a block of tiles at a time as one bounding-box query for highways with `out geom`, parse the JSON, and draw each road into its tile's texture as the repo's drawShapes does, colored and sized by class (motorway, trunk, primary, secondary, tertiary, residential, service; skip footways and paths unless the user is walking). Send a User-Agent that names the app, run one request at a time, retry with a short backoff on 429 and 504, cache results on disk (about a week), and when a block cannot be loaded draw a plain tile and show a small "Map data unavailable" note, never a crash. Show "© OpenStreetMap contributors" in a corner of the 3D view. (2) Utils.latLonToMeters uses abs(), which breaks west of Greenwich and south of the equator: use signed Web Mercator meters. (3) The README's known issue: after the player crosses a number of tiles, re-center on a new primordial tile and place the tiles again relative to it, so coordinates never lose precision. Also handle tile columns wrapping around the 180th meridian simply (clamp or wrap), and never force-unwrap. - Keep the repo's license: put "3D map view based on 3D-GPS-location-map-rendering-game-base-swift-ios-scenekit by nenuadrian (MIT license)" in an About window, together with the OpenStreetMap and Apple Maps credits. - The code is compiled later on the user's Mac, not here, so write carefully: target macOS 13, Swift 5 language mode, only APIs that exist on macOS 13 (the SwiftUI Map view's new API needs macOS 14, so host MKMapView with NSViewRepresentable instead). Double-check every initializer, argument label and optional. THE APP - One window with a Google Maps style layout: a left panel with the search box and the directions card, and the map filling the rest. Minimum window size 900 by 600. A switch at the top of the map between "Map" (MKMapView, with a Standard/Satellite/Hybrid choice and a Traffic toggle using showsTraffic) and "3D Drive" (the SceneKit view ported from the repo). - Search: type in the search box and show suggestions as you type (MKLocalSearchCompleter), press Return to search (MKLocalSearch) and show the results as pins and a list. Clicking a result opens a place card with the name, address, phone and website if there are any, and buttons Directions, Save and Set as my location. Saved places (Home, Work, Favorites) and recent searches are kept in UserDefaults and shown when the search box is focused and empty. Nothing is sent anywhere but Apple's map services. - Your location, the standard way: use CoreLocation (CLLocationManager) for the user's real position. Create the manager once, set desiredAccuracy to kCLLocationAccuracyBest and a distanceFilter of about 5 meters, call requestWhenInUseAuthorization() at launch, react to locationManagerDidChangeAuthorization (check manager.authorizationStatus) and call startUpdatingLocation() once it is authorized, and use manager.location straight away if one is already there. The generated Info.plist already contains the location usage text, so macOS shows its normal permission prompt; do not try to edit Info.plist. Show the blue dot with MKMapView.showsUserLocation, add a "Locate me" button that centers on it, and in the 3D view put the car where the user is. Handle every state with a friendly one-line message and no crash: not determined yet ("Waiting for permission"), denied or restricted ("Location is off for Wayfinder", with a button that opens System Settings at x-apple.systempreferences:com.apple.preference.security?Privacy_LocationServices), location services disabled for the whole Mac, and kCLErrorLocationUnknown (keep waiting; it is not a failure). Use the newest fix only when it is recent (under about a minute old) and its horizontalAccuracy is not negative. - If there is no location (denied, or a Mac with no way to locate itself), the app must still work fully: a "Set my location" action (from a place card, from the search box, or by Control-click or right-click on the map: "I'm here"), remembered in UserDefaults, with the note "Using the location you set". A "Use my real location" switch goes back to the live position. Searches are biased toward the map's visible region or the user's location. - Directions: from my location (or any place) to a place, with a Drive and a Walk choice (MKDirections). Ask for alternate routes and show up to three at once, the selected one in blue and the others gray; clicking a gray route or its row selects it. Each route row shows the travel time, the distance, "Fastest" on the quickest, and the arrival time. For driving, refresh the ETA with MKDirections.calculateETA so it reflects current traffic where Apple provides it, and show "Traffic ETA" or "Typical time" truthfully. The selected route has a turn-by-turn list (its steps with the instruction and distance); clicking a step zooms the map to it. Drag the start and destination pins or edit the two fields to change the route. Add a "Swap" button. - Navigation: a Start button begins turn by turn along the selected route. With a live location, progress comes from the real position: snap it to the route polyline, advance the current step as the user passes it, and when the position is more than about 50 meters off the route for a few seconds, say "Rerouting" and request a new route from where the user is, keeping the same destination. Without a live location, or when the Mac is not moving (a laptop at a desk), offer "Preview drive": a simulated drive along the route, clearly labeled "Simulated drive", with a speed control (1x, 2x, 4x, 8x), Pause and Stop. The same banner, bar and voice work in

What it cost

Every AI run that made this demo, one per line. Model: Claude Sonnet 5.5. Tokens are shown as (in / out). “In” counts everything the model read, including text it had already seen in the session at a reduced price.

Initial prompt(1.42M in / 93k out)164 credits
=Total(1.42M in / 93k out)164 credits

Credits are what a build uses on your plan. This counts AI usage only: hosting and the Mac that compiled it are not included.

Opening it for the first time

  1. Open the .dmg and drag Wayfinder onto the Applications folder.
  2. Open it from Applications. macOS may say it can’t check the app for malicious software. Click Done.
  3. Open System Settings → Privacy & Security and click Open Anyway. This is needed once. Why this happens. To share an app without the warning, see how to notarize it.

You might also like

  • PlayTube icon

    PlayTube

    Paste a video link and watch it in a clean player, with no ads.

    Get
  • AdMute icon

    AdMute

    Listens to your Mac's audio and mutes the ads, then brings the sound back.

    Get
  • Toob-Downer icon

    Toob-Downer

    Paste a video link and save the video to your Mac, with a queue to keep track.

    Get
  • Agent Swarm icon

    Agent Swarm

    Send one task to Claude, Gemini and Hermes at once.

    Get