SolarSoftwares
Book a demo

What Is 3D Solar Modelling?

How we keep reviews fair

Quick answer

3D solar modeling builds a scaled digital copy of a roof, its obstructions, nearby trees and terrain, with a position and height for each object. Software traces the sun across that scene to find shade on every module. On level ground, a shadow’s length is the object’s height divided by tan(sun elevation).

Ready to see how it works?

Tell the SolarSoftwares team which tool you are considering. We reply by email to book your demo.

Book a demo
Jump to a section

Key takeaways

  • A site model is geometry: positions, heights, roof pitch and azimuth. Shade follows from the sun’s position, so the model’s errors become shade errors.
  • On 21 December, one 35 ft tree shades 14.5% of our invented example array’s area on average.
  • On level ground a shadow is height divided by the tangent of the sun’s elevation. Our 35 ft tree casts about 59 ft at midday on 21 December in Raleigh.
  • In our test scene, a 1 m height error moves winter array shade by 2.4 to 4.7 points. A 5 degree pitch error moves it by less than 1 point.
  • Models are snapshots. Aurora’s help gives a case where the LIDAR was collected before a tree was removed. Aurora says its LIDAR shading excludes obstructions on the roof surface, so you add them.

To build the model in software, start with the best 3D solar design software list.

3D solar modelling at a glance

A site model turns a site into objects with sizes and positions. All reported shade is calculated from them.

ItemDetail
Core formulaShadow length on level ground = height ÷ tan(sun elevation). Module shade = share of sample points whose ray to the sun hits an object.
Output and rangePercent of module area in shade at each time step. Our example: 14.5% on 21 December and 0.3% on 21 June (hourly means).
Where it mattersModule placement, shade reports, production estimates, remote design without a roof visit.
Standard or ruleNo single standard for model accuracy. Each tool and each data source sets its own.
In softwareRoof design tools build the model. Simulation tools such as PVsyst take a 3D scene for near shading.

Why 3D solar modelling matters for installers

It decides where modules go and how much shade the proposal admits. A tree or chimney missing from the model means a yield promise the roof cannot keep.

The model is the geometry. Shading analysis is the sun calculation run on it. A shade report or TSRF check inherits every error in the model.

What does a 3D site model hold?

A site model holds four kinds of object. Each has a position and a height: roof planes, rooftop obstructions, trees and neighbours, and terrain.

  • Roof planes: Google’s Solar API describes each roof segment by pitch, azimuth and plane height at its centre.
  • Obstructions: OpenSolar says tall objects such as chimneys cast a real shade cone, and low vents have little effect. Aurora says its LIDAR shading excludes obstructions on the roof surface, so you add them. See keep-out zones.
  • Trees and neighbours: Aurora’s LIDAR shading counts them from elevation data. Trees you add supplement the LIDAR shading, so check what the LIDAR already shows first.
  • Terrain and far hills: ground mounts need terrain modelling. Distant ridges are usually a horizon profile, not model geometry.

Where does the 3D model come from?

Company documents describe five routes. Each has its own limit.

  • Aerial or satellite surface. Google Solar API returns a digital surface model, RGB, flux and hourly shade layers. HIGH is 0.1 m low-altitude aerial. MEDIUM is high-altitude aerial. LOW and BASE are 0.25 m satellite. Limit: the imagery date is returned and called approximate.
  • Imagery plus LiDAR. Aurora’s help article says its AI builds the roof model from HD imagery and LIDAR in under 15 seconds (company claim, October 2026). See LiDAR. Limit: needs both at the address. Otherwise use expert design or draw it.
  • Drone photogrammetry. Scanifly names a drone mesh, Google 3D and LiDAR as scene layers. See drone site survey. Limit: the company pages state no accuracy figure.
  • Drawn over imagery. Easy-PV: drag buildings onto the map, then set heights and pitches. HelioScope: adjust a keepout’s height until its shadow matches the one in the image. Limit: needs the image’s date and time, and HelioScope gives no tolerance.
  • 3D file import. PVsyst near shading needs a detailed 3D scene. Arka 360’s export guide shows PVsyst importing 3ds, DAE and PVC files. Scanifly lets you add your own 3D models. Limit: format lists come from a partner’s help, not PVsyst’s page.

How does a 3D model turn into shade on each module?

The software finds the sun’s direction, then traces a ray from each module back to the sun. If the ray hits an object, that point is in shade.

  1. Get the sun’s elevation and azimuth for each time step. We used pvlib’s default method, an implementation of NLR (formerly NREL)’s SPA.
  2. Turn each pair into a sun direction vector in the model’s coordinates.
  3. Place sample points across every module. We used 36 per module.
  4. Trace a ray from each point towards the sun and test it against every object.
  5. Module shade is the share of points that hit. Array shade is the average over modules.

On level ground, a shadow’s length is height ÷ tan(elevation). On a roof rising away from the sun, divide by tan(elevation) + tan(pitch). A module facing away from the sun gets no direct light, so shade is not counted then.

Shadow length calculator

Enter a height and a sun elevation to get a shadow length. Switch modes to turn a shadow measured in imagery into a height. It refuses an elevation below 0.5 degrees and warns below 5.

Open the calculator on its own page

Worked example: a tree and a chimney on one roof

We built one example scene and traced the sun through two days. The tree puts 14.5% of the array in shade on 21 December. The chimney shades almost none on 21 June.

ItemValue
Site and sunRaleigh, NC (35.78 N, 78.64 W). pvlib 0.16.1, geometric elevation, hourly clock time (EST in December, EDT in June).
House and roof40 ft by 28 ft, gable ridge east to west, eave 10 ft, ridge 17 ft. South face 6:12 (26.6 degrees), 15.65 ft up the slope.
Array18 portrait modules, 3.7 ft by 5.65 ft, in 9 columns and 2 rows on the south face. Setbacks not applied.
Chimney2 ft by 2 ft on the ridge, top at 21 ft.
TreeOpaque solid cylinder: crown radius 8 ft, 8 to 35 ft high, centred 32 ft south and 10 ft east of the house’s south-west corner.
Method36 sample points per module, beam light only, front-lit hours only.
Site plan of a tree shadow sweeping across a house hourly, a chart of hourly array shade values peaking at 42.4% at 14:00, and roof panels showing shade on each module.

Figure 1. On 21 December the tree’s shade on the array peaks at 42.4% at 14:00 (37.5% at 13:00). On 21 June it shades none, because the sun’s path decides where its shadow lands.

Shade starts late morning, peaks mid-afternoon and fades as the sun moves west.

Time (EST), 21 DecSun elevation / azimuth (deg)Tree-top shadow on level ground (ft)Array in shadeModules touched (of 18)
08:005.9 / 1253390.0%0
09:0015.3 / 1351280.0%0
10:0023.0 / 147820.0%0
11:0028.3 / 161658.6%3
12:0030.7 / 1775932.1%8
13:0029.7 / 1926137.5%10
14:0025.6 / 2077342.4%9
15:0018.8 / 22010310.0%3
16:0010.1 / 2311960.0%0
  • A long shadow is not shade. At 08:00 the shadow is 339 ft long but points north-west, away from the roof. Array shade is 0%.
  • Direction decides. Shade shows from 11:00, peaks at 42.4% at 14:00 and ends by 16:00. At 13:00, the model output shows 10 modules touched and 3 fully shaded.
  • Summer is nearly clear. The hourly mean is 0.3%. In the 15-minute model run, the chimney shades 3.5% of the array at 08:00 and 16.5% at 07:15, when the low east-north-east sun first reaches the roof.
  • Time step matters. The December mean is 14.5% on the hour and 13.6% with 15-minute steps. June moves from 0.3% to 0.9%.

Limits: area, not energy. Beam light only. An opaque crown. One example site. Using 144 sample points per module gave the same 14.5%. A separate shadow-polygon test matched the ray casting for the tree on five hours. For the energy side, see mismatch loss.

What do model errors cost?

Height and position errors move shade most. In our scene, a 1 m error in height or distance changes winter array shade by 2.4 to 4.7 points. A 5 degree pitch error changes it by under 1.

A Google research paper on satellite-derived models reports about 1 m mean absolute building height error. It also reports about 5 degrees roof pitch error. That is for its research model and test set, scored against aerial-derived labels. It is not for any product. We used those sizes only as test errors.

Change to the modelArray in shade, 21 Dec (hourly mean)Change (points)21 Jun
Base case14.5%0.00.3%
Tree top modelled 1 m (3.3 ft) taller16.9%+2.40.3%
Tree top modelled 1 m shorter9.8%-4.70.3%
Roof modelled 1 m higher9.8%-4.70.3%
Roof modelled 1 m lower16.9%+2.40.3%

Position matters as much as height. The next table adds position, pitch and leaf cover.

Change to the modelArray in shade, 21 Dec (hourly mean)Change (points)21 Jun
Tree modelled 1 m closer to the house18.3%+3.80.3%
Tree modelled 1 m further away10.5%-4.00.3%
Roof pitch modelled 5 degrees steeper13.8%-0.70.3%
Roof pitch modelled 5 degrees shallower15.1%+0.61.7%
Crown modelled as passing half the beam7.3%-7.30.3%
  • Relative height is what counts. A roof modelled 1 m too high gives the same 9.8% as a tree modelled 1 m too short.
  • Pitch matters little in winter. A shallower roof also faces the early summer sun, which the chimney blocks, so June rises to 1.7%.
  • Trees are not solid. A 1983 preliminary study of six deciduous trees reported about 90% of light blocked in full leaf. For the one tree it details, bare winter branches blocked 40% to 50%. A crown that passes half the beam halves our winter figure, by simple scaling.

How solar software handles 3D solar modelling

Only Aurora documents an AI-built model from imagery plus LIDAR. OpenSolar and Easy-PV are manual, and PVsyst imports a scene built elsewhere.

SoftwareBuilds or imports a 3D site model?Method
Aurora SolarYesAI from imagery plus LIDAR (add-on), expert drawn (add-on), or manual
OpenSolarYesManual design
Easy-PVYesManual on a satellite map
HelioScopePartlyLiDAR view (Pro and Enterprise) and shade-matched heights
ScaniflyPartlyDrone, Google 3D or LiDAR layers
PVsystPartlyImported 3D scene

Partly: the company pages cover only some of the job. What each company documents:

  • Aurora Solar. Site model holds roof geometry, obstructions and surrounding structures. Rooftop obstructions drawn by hand. (Aurora help centre, Oct 2026)
  • OpenSolar. Obstructions with set width, depth and height. Tall objects cast a shade cone. (OpenSolar support, Oct 2026)
  • Easy-PV. Buildings and obstructions dragged on, heights and pitches set, shading calculated. (Easy-PV help, Oct 2026)
  • HelioScope. LiDAR from two sources fits obstruction heights. The company pages do not describe a 3D model or file import. (HelioScope help centre, Oct 2026)
  • Scanifly. Update post names the layers. Help adds a tree library and your own 3D models. Formats not stated. (Scanifly post and help, Oct 2026)
  • PVsyst. Near shading needs a detailed 3D scene. Import formats come from a partner’s help. (PVsyst help, Arka 360 help, Oct 2026)

For tools that also handle layout, proposals and sales, see the best solar design software list.

Common mistakes with 3D solar modelling

FAQs

What is the difference between 3D solar modelling and shading analysis?

The model is the scene: roof, obstructions and trees with sizes and positions. Shading analysis runs the sun across that scene and reports solar access. The same model also drives panel layout.

How accurate is a 3D solar model?

In this example’s scene, a 1 m height error moved winter array shade by 2.4 to 4.7 points, and a 5 degree pitch error by under 1. Google’s research paper reports about 1 m height error and 5 degrees of roof pitch error for its satellite model on its test set. Few companies publish figures for their own models, and Aurora’s help gives none for its AI model.

Do I need LiDAR or a drone to build one?

No. Easy-PV and OpenSolar let you draw the scene over imagery. Aurora’s AI model needs both HD imagery and LIDAR at the address. Otherwise it points you to expert or manual design.

How long is a shadow?

On level ground, height divided by the tangent of the sun’s elevation. A 35 ft tree at 30.7 degrees casts about 59 ft. Use the calculator above for roofs and slopes.

Next step: check that a tool lets you set tree and roof heights, then compare the best 3D solar design software.

Sources

All sources checked October 2026.

Last updated 30 October 2026. Next scheduled review: 30 January 2027.

See the software on your shortlist.

Tell the SolarSoftwares team what you want in your solar software.

Your request goes by email to the SolarSoftwares team. A demo time is set only after we reply.