feat(sim): add Burning Man DCR/DTP scenario - #78
Draft
Komzpa wants to merge 45 commits into
Draft
Conversation
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
from
May 5, 2026 20:12
e5376ca to
c8a26b3
Compare
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
from
May 5, 2026 20:17
c8a26b3 to
c45de0b
Compare
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
from
May 6, 2026 07:06
c45de0b to
9b2b4b8
Compare
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
3 times, most recently
from
May 15, 2026 21:01
340d12d to
ab78d06
Compare
7 tasks
Komzpa
marked this pull request as ready for review
May 17, 2026 17:25
Komzpa
marked this pull request as draft
May 17, 2026 17:42
Signed-off-by: Darafei Praliaskouski <me@komzpa.net>
- treat unparsable map altitude values as absent instead of failing the whole import with an uncaught TypeError/ValueError - import CLIENT_BASE nodes on the router side: current firmware rebroadcasts them like ROUTER_LATE - compare the trig-derived origin longitude with a tolerance in tests
A present origin block that is not a map or lacks a usable lat/lon pair now raises instead of silently dropping the origin and projecting terrain against a different origin than the author intended. Accept the latitude/longitude key spellings alongside lat/lon.
Concurrent runs sharing one cache directory wrote the same fixed temp filename and could atomically publish an interleaved, corrupt tile that then stayed cached. Download and unpack through process-unique temp names and clean up archives after unpacking.
Cache keys carried id(TERRAIN_GRID), so a reused object address after a Config-reusing parse could serve losses computed against an earlier grid. Key the cache on a monotonically increasing per-grid token instead. Also pick the nearest interpolation samples with heapq.nsmallest instead of sorting every sample in this hot path, and use the shared node_antenna_height helper from lib.common instead of a diverging local copy.
Automatic SRTM tile selection evaluated the full link budget for every node pair. Derive one conservative best-case link distance (path loss grows monotonically with distance in every lib.phy model) and skip pairs beyond it before the expensive per-pair work; document that the selection scales with node pairs and recommend --map-limit for broad imports. Also log when a wrapped --map-bbox is discarded for terrain so the substituted extent is not silent, and import node_antenna_height from its canonical module.
TCPInterface connects without a socket timeout, so a stale --nodedb-host blocked the CLI indefinitely. Probe reachability with a bounded connect first so unreachable hosts fail fast with the existing could-not-connect error.
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
from
August 21, 2026 00:31
ab78d06 to
aca4557
Compare
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Komzpa
force-pushed
the
codex/pr33-burningman-on-dcr-dtp
branch
from
August 21, 2026 00:57
aca4557 to
6caf250
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is the Burning Man-specific remainder from stale PR #33, rebased onto the newer radio-policy stack instead of carrying the old monolithic patch forward.
The old PR #33 mixed several unrelated ideas:
What this PR adds on top of #77:
burningManSim.py, a Burning Man scenario runner with router/client placement, clutter, environmental attenuation, and DCR/DTP toggles;I deliberately did not carry over PR #33's old
lib/signal.py: it was unused in the original branch and now duplicates the newer sharedlib/link_model.pypath with older dict/mock-node APIs.Stack / review note
Draft because this sits at the end of the experimental queue. The useful generic pieces should be reviewed before this:
The diff against
masterwill look large until the lower stack lands. The actual delta overcodex/pr33-remaining-optimizationsis intentionally small:burningManSim.py, per-node TX power plumbing, and tests.Validation
/home/kom/proj/lora/Meshtasticator/.venv/bin/python -m unittest discover -s tests -v-> 170 tests OKgit diff --check/home/kom/proj/lora/Meshtasticator/.venv/bin/python burningManSim.py 10 --simtime-seconds 5 --period-seconds 1 --dcr --dtp --phy-loss-model --capture-collision-model