Bucharest · sunlight · 21 December
Winter sun in Bucharest’s apartment blocks: how many minutes of direct light each floor gets on 21 December
The calculation follows the sun and the shadow of 134,385 buildings in Bucharest on 21 December, the day with the least sun of the year, which Order 119/2014 refers to. Of 11,804 apartment blocks, 9.7% have a ground floor where no window, on any façade, gets the 90 minutes of direct sun that the order asks for. Blocks from 2005 on do not differ from those around them: 5.5% of them have a ground floor under the threshold, against 9.4% of their neighbours, a difference within the margin of error.
Your window: minutes of sun, floor by floor#
The map colours every block by the minutes of direct sun that the chosen floor gets on 21 December, on its sunniest façade. Below 90 minutes the colour turns indigo. Click a block or type its address: see which façade gets what sun, when it reaches your room, how the whole year looks and which building takes it from you. For a new block placed in front of your window, see also Will the new block take the sun from your window?
Try:
Minutes of direct sun on 21 December, on the sunniest façade. Below 90 minutes the colour turns indigo.
Click a block on the map or look up an address. The floor, the façade, the hours when the sun comes in and the whole year appear here.
The chosen façade, spot by spot and floor by floor
Each box is one spot on the façade, at most 6 m from the next, on one floor, coloured by the minutes of direct sun on the chosen day, on the map’s scale. The white ring marks the spot with the most minutes of sun on 21 December on the chosen floor, the one in the 3D view. The façade is seen from the front, from outside; gaps separate different wings. Click a row to choose that floor.
Minutes of sun across the year
What takes your sun on 21 December
Drag to move the map; arrow keys and + / − move it from the keyboard.
Drag to rotate; ctrl + wheel to zoom.
What the order asks and what was measured#
Order 119/2014 of the Minister of Health says, at art. 3(1), that the siting of residential buildings must secure at least one and a half hours of sunlight at the winter solstice for the living rooms of the building and of neighbouring dwellings. Where the distance between neighbouring buildings is less than or equal to the height of the taller one, para. (2) requires a sunlight study. Since 2018, para. (3) adds that next to a neighbour with a windowless wall (a gable), the rule applies only to walls with windows.
The order refers to the siting of buildings, so to new projects. A block from the 1970s was not designed under it, but the threshold shows how it stands against what is asked today. The calculation here takes 21 December, the sun as a point and a window 1.5 m above the floor. The order does not say whether the minutes must be consecutive; here they are added up across the day.
The ground floor loses its sun first#
Share of blocks whose floor is under 90 minutes of sun (no façade reaches the threshold), 21 December
Levels are those in OpenStreetMap; lower blocks do not appear in the upper rows.
Of 11,804 blocks, 1,145 (9.7%, interval 9.2–10.2%) have a ground floor where no façade reaches 90 minutes on 21 December. On floor 1 (the first above the ground floor): 5.9%; floor 2: 3.7%; floor 4: 1.2%; from floor 7 up, 0.2% or less. Of the 82,432 levels taken together (ground floor and upper floors), 3.2% are under the threshold. For 149 blocks the ground floor gets not one minute of direct sun on any façade. Only 97 of the 1,145 are also under the threshold on the top floor.
The percentage depends on the heights in the map. With heights exactly as written, without the laser correction for blocks that give only a level count, it is 7.9%. If buildings without a height cast no shadow at all, it is 8.5%; if they have the upper-end heights measured by laser (6, 9 or 15 m by footprint), 11.0%. If the ground-floor window sits a metre higher, as on raised ground floors, 8.2%. The reasonable range is 8.5–11.0%, and 9.7% is the central estimate.
A floor under the threshold means that no window on it, on any façade, collects 90 minutes; only a corner room with windows on two faces could still add the minutes up. A floor over the threshold does not guarantee sun to every flat: it depends on which way the rooms face.
New blocks do no worse than the ones around them#
The calculation started from the hypothesis that new residential complexes leave their ground floors without sun. Set against blocks in the same area, it does not hold for their own ground floors; the effect of a new block on its neighbours was not measured. Of the blocks built from 2005 on (by the year in the map) that have neighbours in the same 500 m cell, 5.5% have a ground floor under the threshold, against 9.4% of the others in the cell (309 blocks in 75 cells). The difference of −3.9 percentage points has the interval −8.5 to +0.5, so it is not statistically different from zero. With the age of the area read from satellite imagery, 3.4% against 3.8% (174 blocks). Three of the 619 blocks from 2005 on have a ground floor with not one minute of sun.
Ground floors under 90 minutes of sun: new blocks and the others in the same 500 m cells (with the uncertainty interval)
Black line: 95% interval, by resampling cells. Only cells with at least five neighbours.
Across the whole city, blocks in new areas seem to do better (4.1% against 10.6% in areas built up by 1990), but the gap comes largely from location: they stand farther from the centre, with a median of 8.3 km against 4.5 km for all blocks, and ground floors under the threshold fall with distance. That is why the right comparison is with neighbouring blocks.
The age of an area comes from European Commission Joint Research Centre satellite imagery (cells of about 100 m): an old area has at least 70% of the 2020 built-up surface on the cell already in 1990, a new one has less than 30% in 2000. A new block among old ones can be misclassified, which is why blocks with the year from the map are given too. In OpenStreetMap, 79–81% of blocks have floors or height recorded, the same in every age group.
Where the ground floors with too little sun are#
Ground floors under the threshold are more common toward the centre: 14% of blocks within 2 km of Piața Universității have a ground floor under the threshold, 12% between 2 and 4 km, 9% between 4 and 6 km and 3% beyond 8 km. The worst-hit districts are Cișmigiu (26%), Gara de Est (25%) and Iancului (23%); some big estates, like Titan (4%), Drumul Taberei (6%) and Berceni (7%), do well, others, like Militari (14%) and Pantelimon (17%), do not.
The block itself matters too. Among long blocks (at least two and a half times as long as wide) with their big façades facing north and south, 8.8% of ground floors are under the threshold; among those with big façades facing east and west, 4.2%. For blocks with 11 levels or more it is 13%, with 5–7 levels 7%.
Ground floors under the threshold by district, 21 December
| District | Blocks | Ground floor under 90 min | Floors under threshold |
|---|---|---|---|
| Cișmigiu | 183 | 26.2% | 9.7% |
| Gara de Est | 193 | 24.9% | 8.7% |
| Iancului | 281 | 23.5% | 11.0% |
| Doamna Ghica | 211 | 19.4% | 5.6% |
| Tineretului | 138 | 18.1% | 4.4% |
| Crângași | 221 | 18.1% | 6.3% |
| Obor | 301 | 16.9% | 4.6% |
| Pantelimon | 271 | 16.6% | 4.6% |
| Rahova | 233 | 15.9% | 5.2% |
| Tei | 193 | 15.5% | 4.2% |
| Sălăjan | 229 | 14.0% | 5.3% |
| Militari | 427 | 13.8% | 4.7% |
| Cioplea | 279 | 12.2% | 2.8% |
| Gara de Nord | 151 | 11.9% | 3.1% |
| Cartierul Armenesc | 396 | 11.9% | 5.1% |
| Dorobanți | 193 | 11.4% | 4.0% |
| Mântuleasa | 123 | 10.6% | 3.6% |
| Vitan | 124 | 10.5% | 2.7% |
| Dristor | 313 | 10.2% | 3.2% |
| Semănătoarea | 204 | 9.8% | 3.1% |
| Dudești | 245 | 8.6% | 2.4% |
| Traian | 292 | 8.2% | 2.9% |
| Vatra Luminoasă | 563 | 7.1% | 2.9% |
| Berceni | 510 | 6.7% | 1.8% |
| Drumul Taberei | 321 | 6.2% | 1.9% |
| Pajura | 130 | 6.2% | 1.6% |
| Metalurgiei | 254 | 5.9% | 1.2% |
| Apărătorii Patriei | 169 | 5.3% | 1.4% |
| Progresul | 187 | 4.8% | 1.2% |
| Floreasca | 155 | 4.5% | 1.5% |
| 13 Septembrie | 159 | 4.4% | 1.3% |
| Balta Albă - Titan | 328 | 4.3% | 1.4% |
| Aviației | 236 | 4.2% | 1.2% |
| Giurgiului | 308 | 3.9% | 1.0% |
| Ozana | 216 | 3.7% | 0.8% |
| Brâncuși | 196 | 2.6% | 1.0% |
The district is the nearest named centre in OpenStreetMap within 1.5 km; only those with at least 120 blocks are listed. These are not official boundaries.
The order requires a sunlight study when the distance between buildings is less than or equal to the height of the taller one. In Bucharest, 92% of blocks have a neighbour closer than that, so the study would be needed almost everywhere; of these, 10.4% have a ground floor under the threshold, against 2.3% of the rest.
How it is calculated and how sure the result is#
Buildings come from OpenStreetMap (data up to 11 October 2026). 11,804 blocks have a height or a floor count and are the ones measured; the other 20% or so of buildings marked as apartment blocks lack these data, so they cast shadows but get no result. Search by address uses the addresses in OpenStreetMap, assigned to the block they fall in or the nearest one within 12 m: 91% of blocks have at least one address. Many blocks carry only their block name in OpenStreetMap (“Bl. 20E”, the number every Bucharest block is known by), with no address; these can be found by name, listed under every street within 35 m of the block and under the nearest one within 80 m. With them, 96% of blocks can be looked up. The street names on the map also come from OpenStreetMap.
Heights were checked against roofs seen by the ICESat-2 satellite laser: for buildings with a written height the median deviation is 0.2 m and the typical deviation 0.8 m (77% within ±3 m, 53 buildings). Those with only a level count are in fact 3.8 m taller in the median than 3 m × levels (66 buildings; 4.6 m at 1–4 levels, 3.9 m at 5–8); 2.5 m and 3.5 m were added, less than the medians, so that shadows are not overestimated; without that correction, ground floors under the threshold would be 7.9%. Buildings with neither height nor level count (laser: median 8.9 m, 201 buildings) get 5–9 m by footprint, below the measured median, so the central estimate may shade slightly too little; the no-shadow and upper-height scenarios give the interval above.
The sun’s position comes from the NOAA formula, compared with the JPL DE421 ephemeris at 158 points: the largest error is 0.009° in elevation. Shadow is computed from each window with rays toward the sun between the surrounding roofs, out to 800 m. The calculation on the page (the window’s horizon) was compared with the program that produced the map on 84 windows in 28 blocks: the median difference is 0 minutes, and 83 of 84 windows give the same verdict at 90 minutes. On 4 windows the difference exceeds 12 minutes (at most 28). The value shown for a façade (its sunniest window) is within 12 minutes of the one on the map for 80 of 84 windows.
Trees, balconies and loggias, relief (Bucharest is nearly flat), roof shapes, buildings too new for the map and the effect of a new block on its neighbours are left out. The result was not compared with sunlight studies from building permits: those found publicly are from other cities, and none was found for Bucharest. The city is Bucharest only; Timișoara, also flat, could follow, while Cluj, Iași and Brașov need a model with hills, which shade those cities in winter.
Sources#
- Order of the Minister of Health no. 119/2014, consolidated text, art. 3, on legislatie.just.ro.
- OpenStreetMap, buildings, heights, floors, addresses; ODbL licence; Geofabrik extract with data up to 11 October 2026.
- NASA ICESat-2 ATL03, via SlideRule, to check roof heights (the same passes as in Bucharest measured by a laser from space).
- GHSL R2023A, European Commission Joint Research Centre, built-up surface 1975–2020 (age of areas).
- Sun position: NOAA formulas, checked against the JPL DE421 ephemeris.