IPSC3 Net Console is a separate Windows, macOS and Linux desktop application for net controllers. It uses the same dark teal styling as IPSC3qt, but concentrates on the selected net rather than the entire dashboard. Current version: 0.1.1.
ipsc3net.pyz from Desktop Clients on the selected server's Downloads page.py ipsc3net.pyz on Windows or python3 ipsc3net.pyz on macOS/Linux. If necessary, the launcher installs PySide6 in a user-local virtual environment. Linux may also need its distribution's Python venv and Qt display libraries.Participants remain in first-heard order. The transmitting person's existing row is highlighted and scrolled into view; it is not moved to the top. The controller is excluded from the participant count and list, but remains on the map and has a prominent ON AIR indicator above the console. Multiple Radio IDs registered to the same callsign are combined. Unknown or invalid callsigns remain separate by Radio ID.
The current transmitter is highlighted pink. The next participant in first-heard rotation is highlighted teal and shown as UP NEXT. This suggestion advances when a participant transmits, wraps at the end of the list, and is not changed by the controller's own transmissions. It does not force anyone to transmit or alter network routing.
The table shows callsign, first name, suburb, state, country, the current-over timer, cumulative speaking time and number of overs. The net elapsed clock runs independently. Totals are based on observed server timestamps, not sample-level audio measurements. Duplicate copies sharing a radio and stream are merged; overlapping intervals do not double-count cumulative airtime. A missing call ending is estimated and marked with an asterisk.
The header shows UTC and local date/time, including the local time-zone abbreviation. These clocks run even before a net starts, using the computer's time-zone settings. The separate NET clock measures the net duration. Setup fields and Connect, Start Net and Stop Net share a single aligned row.
The offline world map adds callers as they arrive, changes transmitting markers to pink, and supports pan, cursor-centred wheel zoom, plus/minus buttons, Fit Net and World views. Green means GPS, blue an indoor estimate, and amber an approximate location. It includes a distance scale, adaptive grid, and readable bordered labels. At crowded locations idle labels may be hidden until zoomed in; hover a marker to see all stations sharing that location. Hovering a label also shows position source and coordinates. Longitude wraps across the international date line.
Recent valid coordinates take priority. Legacy DMR positions are checked against known receiver locations (100 km for repeaters, 20 km for hotspots); POC positions can legitimately be anywhere. Invalid or older-than-one-hour fixes fall back to the registered town, then a state reference, then a country reference. If no location is known, the station is not plotted at a fabricated zero coordinate. Location source is available in tooltips and reports. State/country references are coarse estimates, not exact radio locations.
Natural Earth boundaries and GeoNames place data are bundled in the application. There are no map tile requests or per-caller requests to public geocoders. Town coverage includes worldwide cities and Australian smaller settlements; an unmatched suburb may therefore use the state or country fallback.
Each net is automatically saved to a local SQLite file, including received events, identities, locations and connection notes. Closing during a net leaves it resumable. Reconnection replays available server events with deduplication. The feed exposes a rolling 24-hour recovery window; the local recording itself has no automatic expiry. Recovery beyond that window is explicitly flagged.
The standard PDF has a geographic overview, summary totals, one participant row per callsign, regional callsign maps, individual IDs, locations and their confidence, first-heard times, overs, speaking totals, controller, server, talkgroup, UTC/local start/end times and connection-gap notes. Multiple overs are combined in each participant's row rather than repeating the callsign throughout a per-over appendix.
Tick Include transmission log before exporting if a detailed chronological appendix is needed. That optional section deliberately lists each over, including net control. All detailed history remains in the saved session regardless of the PDF option. Existing saved nets can be reopened and re-exported in the new compact format. It is a received-call report, not proof of verbal check-in. No voice recordings are made.
python3 ipsc3net.pyz --server ipsc3.vkdmr.com
python3 ipsc3net.pyz --report saved-net.sqlite3 --output net-report.pdf
python3 ipsc3net.pyz --report saved-net.sqlite3 --output detailed-report.pdf --include-transmissions
The app checks the selected server for its own update manifest and validates the downloaded version and SHA-256 checksum over HTTPS. Updates are never applied during an active net. A previous bundle is retained for rollback. This is separate from IPSC3qt's updater.
All collection is read-only over the dashboard API. Geocoding, session storage and PDF creation run on the controller's computer. No additional per-packet work, recording or synchronous database calls are added to the voice daemon.
See Net Console API. Mapping data: GeoNames, CC BY 4.0 and Natural Earth, public domain.