13.7 Section 13: Celestial & Environmental Data

Standalone compass (Tools)

Full-screen compass living in the Tools menu, independent of the viewfinder badge.

Where to find it

Tools Compass

Summary

A pure-black full-screen Compass reachable from Tools > Compass. Large rotating cardinal dial centred on screen with a fixed forward arrow at the top, a horizon-aligned pitch bar, an accuracy ring colour coded to the magnetometer health, a centred numeric bearing readout and cardinal abbreviation, plus the same yellow sun tick and colour-segmented sun-path arc the viewfinder badge draws and a full-width time-scrub slider at the bottom for previewing future or past sun positions. A small True or Magnetic chip in the top left tells the user which reference frame the bearing is in. Reuses the same CompassSensor and SunMath pipelines the viewfinder badge uses, with the sensor activation and 30-second sun-azimuth refresh gates widened so both wake when this surface is open. On devices without a magnetometer the dialog shows a clear no compass on this device explanation rather than a frozen needle.

Tap to zoom — actual screenshot from the app

Detail

More views

How it works

A full-screen compass you can pull up at any time without enabling the viewfinder compass badge first. Useful for figuring out which direction a building faces during scouting, lining up a pinhole or large format setup with the sun at a known bearing, or just answering which way is north on a foreign rooftop. Lives in the Tools list so it is one tap away.

Opening the tool

Open the Tools menu from the toolbar and tap Compass. The whole screen turns black and the dial fills it. Tap the close icon in the top right or press the back button to return.

Reading the dial

The red arrow at the top is the camera direction. The cardinal ring rotates around it so N, E, S, W and the intercardinals always point at their real-world directions. The big number in the middle is the bearing in degrees and the smaller letter pair just under it is the cardinal abbreviation. The thin horizontal line across the dial is the pitch bar: it sits on the centre when the camera is level and slides up or down to show how tilted the camera is, plus or minus 45 degrees fills the dial vertically.

The yellow sun tick

When the sun is above the horizon and a Sun and Moon location is known, a yellow dot is drawn on the dial at the sun's compass bearing. As you swing the camera the dot rotates with the cardinal letters and the sun stays anchored to its true direction. Lining the camera arrow up with the dot puts the sun in front of you, putting the dot on the opposite side of the dial puts the sun behind you.

Sun path arc

Today's full sun trajectory is drawn around the rim of the dial as small colour-coded dots: cool blue for blue hour, warm orange for golden hour, pale yellow for mid-day, hot pink-red for sunrise and sunset. Past samples are dimmed so the future arc reads as where the light is going next. The yellow live tick sits on the same path. Useful for scouting at noon and seeing exactly where the sun will be at 5 pm without leaving the tool.

Time scrub slider

The thin horizontal slider at the bottom moves the yellow sun tick (and the position on the path arc) to where the sun will be at any moment from civil dawn to civil dusk. The wall-clock time of the scrubbed instant is displayed above the slider; tap Now to snap back to the live sun position. Lets you preview a sunset shot at noon without doing arithmetic. Toggling between past and future works the same way.

True north or magnetic north

The chip in the top left says either True north or Magnetic north depending on the toggle that lives under the viewfinder Compass overlay settings. When True north is on and a Sun and Moon location is set, the bearing has the local magnetic declination already applied via the World Magnetic Model. When True is on but no location is set, the app silently falls back to the raw magnetic reading. Toggle the reference from the Composition grid > Compass overlay > Use true north switch.

Accuracy ring

The thick coloured ring around the rim is the magnetometer accuracy: green is high, yellow is medium, orange is low, red is unreliable. Walking past large pieces of iron, standing on a steel framed bridge, or holding the phone near a speaker can knock the magnetometer out of calibration.

Calibration prompt

When the accuracy drops to red, the dial is hidden and a Calibrate (figure-8) message replaces it. Wave the phone in a slow figure-8 motion for a few seconds to re-prime the magnetometer. The dial returns automatically once the readings settle.

Devices without a magnetometer

A small minority of budget phones ship with no magnetic field sensor at all. On those devices the standalone compass shows a clear No compass on this device message instead of a stuck dial.

Relationship to the viewfinder Compass badge

The viewfinder Compass overlay (feature 13.5) and this standalone tool are independent surfaces. They share the same sensor pipeline so the readings always agree, but each can be on or off without affecting the other. The viewfinder badge is the planning surface with the sun tick, sun path arc, countdown and time scrub. The standalone tool is the focused heading instrument: dial, arrow, pitch bar, numeric readout. If you need both at once, the badge stays in the corner of the viewfinder while the standalone tool gives you a big readable compass on demand.

Battery cost

The compass sensor only listens while either the viewfinder badge or this standalone tool is visible. The moment both are off the listener is unregistered. Camera capture is paused while the tool is open since the viewfinder is hidden behind the black background anyway.

Implementation notes (for developers)
StandaloneCompassDialog in ui/standalone/. Master flag is _standaloneCompassOpen on ViewfinderViewModel (D8 ceiling reason). The CompassSensor activation collect was widened from a single _compassOverlayEnabled.collect to combine(_compassOverlayEnabled, _standaloneCompassOpen).collect so the sensor wakes when either consumer needs it and stops when both are off. The 30-second sun-azimuth + sun-path + next-event refresh tick was widened the same way so today's sun arc rolls over at midnight and the next-event chip rolls forward whether the viewfinder badge is on or just the standalone dial. Reads compassAzimuthDisplay, compassPitch, compassAccuracy, compassUseTrueNorth, displaySunAzimuthDeg (already includes scrub offset), sunPathSamples, compassScrubMinutesOffset, compassScrubRangeMinutes, compassScrubPhase, compassTimelineEvents StateFlows so the true vs magnetic logic, declination math, sun position formula, and scrub mapping come from the same place as the badge. The CompassScrubSlider composable is reused verbatim from ui/overlay/CompassBadge.kt rather than duplicated. Drawing helpers (drawCardinalRingLarge, drawSunPathLarge, drawSunTickLarge, drawForwardArrowLarge) mirror the badge code at full-screen scale: 28 sp cardinal letters, 18 sp intercardinals, 9 dp sun tick, 3 dp path dots, larger ticks, thicker arrow. Calibration prompt overlay reuses the figure-8 wording from the badge. Sun tick + sun path are gated on availability of sample data (no toggles, no clutter when no location is set). Countdown badge and shot-log stamping remain viewfinder-only since they belong to the planning / capture loop.

Search documentation