Broadcast & Receive
The idea
Normally terrain flows along wires inside one graph. Broadcast and Receive let terrain jump between graphs without a wire — useful when you split a world into several graphs and need one graph's output available in another.
A Broadcast node publishes the heightmap on its input under a named tag. A Receive node in any graph picks a tag from a list and outputs that heightmap.
graph LR
subgraph GA ["Graph A"]
a1["…"] --> BC["Broadcast<br/>tag: mountains"]
end
subgraph GB ["Graph B"]
RC["Receive<br/>tag: mountains"] --> b1["…"]
end
BC -. "tag: mountains" .-> RC
No wire connects the two graphs — the dashed link is the tag carrying the heightmap
from Graph A's Broadcast to Graph B's Receive.
How Hesiod handles it
These are the Broadcast and Receive nodes (in the Routing category).
Broadcastpasses itsinputstraight through to athruoutput and publishes it under an automatically managedtag.Receiveoffers atagchooser that the graph manager fills in with the tags currently being broadcast. When it computes, it doesn't just copy the source heightmap — it re-projects it from the broadcasting graph's coordinate frame into the receiving graph's frame (interpolate_heightmap). That is what makes Broadcast/Receive the backbone of multi-graph worlds, where each graph occupies a different rectangle of one shared world space.
See also
- Building a "patch of graphs" — the advanced worldbuilding workflow built on Broadcast/Receive.
- Tiling & overlap — the shared world space these graphs live in.