Solar polygon grid module layout calculator

Calculate grid module count and module rectangles [x,y,width,length] JSON with your own figures.

Your numbers

Use the units shown. Results update as you change valid inputs.

Use grid module count and module rectangles [x,y,width,length] JSON to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Usable roof polygon vertices [x m,y m]
[[0,0],[10,0],[10,6],[0,6]]
Excluded polygons (JSON array)
[[[4,2],[6,2],[6,4],[4,4]]]
Module width (m)
1
Module length (m)
2
Intermodule gap (m)
0.1
Grid module count (count)
14
Module rectangles [x,y,width,length] JSON
[[0,0,2,1],[2.1,0,2,1],[4.2,0,2,1],[6.3,0,2,1],[0,1.1,2,1],[6.3,1.1,2,1],[0,2.2,2,1],[6.3,2.2,2,1],[0,3.3,2,1],[6.3,3.3,2,1],[0,4.4,2,1],[2.1,4.4,2,1],[4.2,4.4,2,1],[6.3,4.4,2,1]]
Covered module area (m²)
28

Try another scenario

Usable roof polygon vertices [x m,y m]
[[1,0],[10,0],[10,6],[0,6]]
Excluded polygons (JSON array)
[[[4,2],[6,2],[6,4],[4,4]]]
Module width (m)
1
Module length (m)
2
Intermodule gap (m)
0.1
Grid module count (count)
10
Module rectangles [x,y,width,length] JSON
[[1.1,0,1,2],[2.2,0,1,2],[6.6,0,1,2],[7.7,0,1,2],[8.8,0,1,2],[1.1,2.1,1,2],[2.2,2.1,1,2],[6.6,2.1,1,2],[7.7,2.1,1,2],[8.8,2.1,1,2]]
Covered module area (m²)
20
Calculation method

Calculation method

Grid module count (count)

Compare two axis-aligned grid orientations anchored to polygon bounding-box minimum; keep rectangles wholly inside usable polygon and outside supplied exclusions. This is a feasible layout heuristic, not a maximum packing solver.

Module rectangles [x,y,width,length] JSON

Compare two axis-aligned grid orientations anchored to polygon bounding-box minimum; keep rectangles wholly inside usable polygon and outside supplied exclusions. This is a feasible layout heuristic, not a maximum packing solver.

Covered module area (m²)

Compare two axis-aligned grid orientations anchored to polygon bounding-box minimum; keep rectangles wholly inside usable polygon and outside supplied exclusions. This is a feasible layout heuristic, not a maximum packing solver.

Symbols and units
a
Usable roof polygon vertices [x m,y m]
b
Excluded polygons (JSON array)
c
Module width (m)
d
Module length (m)
e
Intermodule gap (m)

Use the units shown. A list keeps the order in which you enter its values. The symbol ^ means “raised to the power of”.

Assumptions & limits

Assumptions & limits

  • User-supplied measurements and assumptions; Compare two axis-aligned grid orientations anchored to polygon bounding-box minimum; keep rectangles wholly inside usable polygon and outside supplied exclusions. This is a feasible layout heuristic, not a maximum packing solver. Supported limits: Finite numeric values bounded to 1e9 magnitude; lists and tables contain 1–100 records unless a stricter bound is stated. Inputs use the units shown. Lists explicitly paired by a method must have matching lengths; independent polynomial coefficient vectors may differ. Respect stated physical, interpolation, policy and computational domain limits.
Are these inputs private?

These calculations run in your browser. A shared link contains the values you choose to share. Only questions submitted to the separate AI finder are sent to OpenAI.

Further reading

Method reference ↗

Background reading; this does not imply endorsement or independent review of SumFizz.

Share this page
Share this calculator

Leave unchecked to share the page without your entered values.