Atlas #14 · The living island, part 2 of 2
Concept art from the Atlas ontology: Torches on the mountain (concept 258)
In this post
- Binh Ninh stands on piles in Ho Lang
- On a dry Saturday, 406 boats release lanterns
- Nearby people have names; distant groups become counts
- A modelled lamp stays visible eight kilometres away
- A window has to face you
- A shoulder of the hill hides the torches from the summit
- The model draws each light again below the waterline
- The experiment runs; the game does not show these lights yet
At half past seven on a Tuesday evening, sixty people leave a temple in Binh Ninh and climb towards a forest shrine. Twenty carry torches. From the karst summit above the lake, the town's lamps are visible, but a shoulder of the hill hides every torch. Across the water, the south shore sees all twenty.
That is the result of a lighting experiment built around Binh Ninh's town plan and the ground around Ho Lang. At 19:40 the summit sees 129 lamps; the south shore sees 25 lamps and the climbing torches. Moving higher does not reveal a path hidden behind a hill.
The experiment also follows the town's weekly lantern release, from the makers' stocks to the lights drifting above the lake. It runs beside the game in Python. Its night views and films are simulation diagrams, not game-engine renders. The daytime lake view and the approved concept art below are labelled separately. These lights and ceremonies are not in the game yet.
Binh Ninh stands on piles in Ho Lang#
Binh Ninh’s proposed town plan places 481 homes on piles out in Ho Lang, a lake in the island's rainforest east, and its people's culture is Vietnamese in flavour. The plan’s houses, walkways, workshops and 447 household boats come from the town generator, the tool that lays out Atlas's towns plank by plank. The terrain around it comes from Atlas's terrain library, sampled on a 20-metre grid: the hills, the lake's shores, and a karst summit 564 metres above the water.
Ho Lang by day, rendered by the game engine on 21 October. The stilt town is not built in the engine yet.
On a dry Saturday, 406 boats release lanterns#
In the experiment, every Saturday at sundown the town's boat owners row out to the northern part of the lake and release a sky lantern each. The ritual repeats weekly. Three lantern makers in town supply them, making 101, 171 and 180 lanterns a week and keeping a week and a half in stock.
On a dry Saturday 406 of the 447 boats go out. On a rainy one only 78 do. The 342 households left holding a lantern keep it for next week, so the week after the rain only 92 lanterns are sold. Rain leaves lanterns on shelves and in houses, cutting the following week's purchases. The model also gives each household its own chance of going, between 85 and 99 per cent.
A lantern rises about 30 metres a minute and burns for 12 to 18 minutes. The evening's breeze is slow, 6 to 18 metres a minute, and turns a little with height, so the tracks curve. Each lantern also wanders in its own small eddies and bobs as it climbs. Released together, they become a loose, slowly turning cloud a few hundred metres across, and then they go out one by one.
Simulation diagram. The Saturday of the release, from sundown to nine, with the procession after dark. Time runs at a quarter of a second a minute, and at a second a minute while the lanterns rise and while the procession walks.
Simulation diagram. From a boat 700 metres off, thirteen minutes after sundown.
Nearby people have names; distant groups become counts#
The daytime part of the experiment answers "who is there?" by the observer's distance. Within 40 metres you meet people: a name, an age, what they are doing, and a little history the world keeps for them, such as how many lanterns their household has released this year. Between 40 and 80 metres the answer blends named people with anonymous figures. Out to 600 metres you see figures without faces. Beyond that, the world gives only a number for each 250-metre block.
All four answers use the same record of who is where and when. The distant counts and the nearby people therefore come from the same population. Walking in from the north on a Tuesday morning, you meet 46 people on the road. Every one of them was a faceless figure first, under the same anonymous handle.
Simulation diagram. In a boat among the lanterns, from 75 minutes before sundown to an hour after. The close-up shows who is near and what they can tell.
Simulation diagram. The same evening from the town hill and from the karst summit. From the summit, everyone is only a number.
Simulation diagram. Walking in from the north on a Tuesday morning.
A modelled lamp stays visible eight kilometres away#
After dark, distance alone is not enough to choose what to show. A figure may disappear into the dark while its torch remains visible. The experiment tests each light against the sky and the ground between it and the observer.
For each light, it calculates how much light reaches the observer. The answer is the light's strength, falling with the square of the distance and dimmed a little by the haze, compared with the faintest star the sky still lets you see. Astronomers measure that in magnitudes. An oil lamp is assigned a strength of one candela at its window. Under this model’s dark, moonless sky and chosen haze, it stays above the star-visibility threshold out to about eight kilometres. A 40-candela torch reaches the same threshold at about thirty kilometres, before accounting for obstructions. These are model predictions, not measured viewing distances.
As twilight darkens, dimmer lights pass the brightness test. At sundown only lights brighter than a magnitude −1.5 star show against it. An hour and forty minutes later, everything down to magnitude 6 shows, and with it the stars. A light seen against the dark hills or the lake, rather than against the sky, shows a little fainter still. That is why the town's lamps, lit between 5 and 40 minutes after sunset, come out slowly for a distant observer. At 17:50 on the Tuesday 291 lamps are lit. In its view the summit finds only 56 of them, the north road 14 and the south shore 19. By seven the sky is dark enough for the lamps to pass that brightness test. Hills, buildings and window direction still hide some of them.
Simulation diagram. 17:50 on the Tuesday: 291 lamps lit, and most of them still lost in the dusk from this far away.
A window has to face you#
A village's lights do not all show at once. Each house's lamp shows only through its openings, which face some directions and not others. The houses in front also hide the lamps behind them, up to their roofs. Both come from the town's own plan: its houses' outlines, storeys and positions.
From the south shore at 19:40, 25 lamps show. 207 have no window facing that way, and 156 are behind other houses. From the karst summit you look down over the roofs: 129 show and only 62 are hidden by houses. A lit house can therefore disappear from one view and remain visible from another.
A shoulder of the hill hides the torches from the summit#
The procession leaves temple 2 at 19:30 and takes the town's own ways: the walkways, a shore link and the shrine's footpath, 394 metres with a climb of 79 metres. The path climbs behind a shoulder of the hill. From the karst summit, the slope rises up to 18 metres above the line of sight, 66 metres in front of the torches. From the road down from the north, the shoulder stands 111 metres above the lake and 52 above the line. Both observers see the town's lamps and nothing of the climb.
To find where the climb can be seen, we tested every point of ground 1.8 to 2.6 kilometres from the shrine, every 50 metres. Among the tested positions, the south shore across the lake sees the whole climb and the most town houses. From there the torches climb as a dotted line, one every nine metres, against a slope you cannot otherwise see.
Simulation diagram. A Tuesday from sundown to a quarter to eleven, slowed while the procession walks.
Simulation diagram. From the south shore at 19:40: the procession halfway up.
Approved concept art: Torches on the mountain, concept 258. It sets the intended appearance; it does not depict the Binh Ninh experiment.
The model draws each light again below the waterline#
The reflection model treats calm water as nearly a mirror and draws each visible light a second time: its mirror image, as far below the water as the light stands above it. From the south shore the procession climbs the slope and, below the waterline, its reflection climbs down. Small waves tilt the water a degree or two either way, so each image breaks into a short glitter that changes from moment to moment. From four metres above the water the glitter stretches toward you. From the summit you look down too steeply for the reflections to be more than small glints right under the lamps.
Approved concept art: Oil lamps along the dark river, concept 259. The simulation has not achieved these reflected streaks.
The experiment runs; the game does not show these lights yet#
Running now, as an experiment in Python: - the lantern release, its makers and its rain; - nearby named people, anonymous figures and distant population counts; - every lamp, torch and lantern tested for brightness, sky, terrain, houses and walls.
The numbers in this post come from those tests, and the films are drawn from their answers. Answering all three views of a frame, every light tested against its sky, the hills, the houses and its windows, takes 5.2 milliseconds in Python on a Tuesday. On the Saturday it takes 19, with 406 lanterns in the air and each one tested again every frame. The game's budget for this kind of work is 5 milliseconds a frame. Compiled to Rust, with the tests of lights that do not move kept from frame to frame, may reduce that cost, but neither change has been measured. The experiment has not demonstrated that it meets the game’s budget.
Not yet: - In the game. None of this is in the game's renderer yet. - Moonlight in the visibility calculation. The separate night-sky work draws a moon, but this experiment does not use moonlight to decide which people or lights are visible. - Trees. The shrine stands in woodland that would hide some of the torches. - Glow on walls and smoke. - Lamps from the economy. Lamp oil, candles and torch pitch are goods, and when a house lights its lamp and when it goes to bed should depend on what it can afford and on the season. Here they are drawn at random.
Across Ho Lang, the torches climb above the town’s windows. From the summit, the same slope stays dark.






