Skip to content

2026 · Engineering, solar energy

A heliostat designed in your browser

Sunspot positions the mirror on the map, calculates the optics and mechanics, then delivers everything needed for construction: STL files for 3D printing, a materials list, an Arduino sketch and a manual. It does not use AI in operation. We wrote the code with the help of AI.

Heliostat Sunspot in a dome: 37 hexagonal mirrors on a frame with servos, rendered in the app
Types of parts
129
Pieces to assemble
1 587
STL files in the package
28, 211 units in total
Materials list
107 items
Mirrors
37 facets, 865 cm²
Application code
89,346 lines of TypeScript
Automated testing
790 cases across 72 files
From the first commit to version 1.0.0
26–28 October 2026

01What is it

Heliostat with 37 mirrors of variable curvature

A heliostat is a mirror that tracks the sun and reflects light onto a chosen point. Sunspot is made up of 37 hexagonal facets with 2 mm acrylic mirrors. Each facet has a 30 mm side, the mirrors cover an area of 865 cm², and the complete mirror assembly weighs 5.64 kg.

Each facet is tilted by two servos, 74 in total. The mirror array therefore acts as a single mirror with adjustable curvature: the light spot can be focused on a target 4 m or 30 m away. The entire assembly rotates on two axes, azimuth and elevation, using 28BYJ-48 stepper motors, beneath a PMMA dome approximately 724 mm in diameter.

We provide the sunspot.hexart.io app for free, with no account required. It’s a sample of what we do today: an engineering project from requirements to a production-ready package.

02Not AI, just code

There is no artificial intelligence in action

The application does not call any AI model. The code calculates every value using formulas from literature and standards, which can be verified in the calculation documentation. The same set of parameters produces the same part dimensions.

The sun’s position is calculated using the NOAA and Meeus algorithm with refraction. Direct normal irradiance (DNI) is calculated using the Meinel model with the Laue correction, air mass using the Kasten and Young formula from 1989, and the shape of the solar disk using the Buie model. Wind loads are calculated according to EN 1991-1-4, gear teeth according to ISO 6336, and bearings according to ISO 76 and ISO 281.

Where AI has worked

AI helped write the code. Paul Lazniak defined the requirements, while a team of AI agents wrote the code in waves: authors worked in separate file scopes in parallel, followed by integration and review by separate agents. Feature authors used Claude Opus 5.5, while Claude Sonnet 5.5 verified individual submissions.

Seven research agents prepared 30 component cards with catalog data. One coordinating session managed 25 agents. The rule was: no made-up figures, every value must have a source.

03Simulation

Sun, wind and risk assessed before construction

  • 160,000 rays in 0.1 s

    The optics are calculated using Monte Carlo ray tracing on a 129 × 129 grid. For 37 facets, each run takes about 0.1 s, so the intensity map on the target updates live as the parameters change.

  • 39.0 W out of 57.13 W

    Research card dated October 26, 2026: at a DNI of 909 W/m² and a target distance of 4.47 m, 39.0 W hits the target. Peak density is 12.35 kW/m², and 90% of the energy falls within a circle 9.6 cm in diameter.

  • 460 Wh per day, 121.3 kWh per year

    The same card calculates energy delivered over the course of a day and a year. The day can be reconstructed hour by hour, including weather data from Open-Meteo.

  • 0 collisions across 833 positions

    The mechanism check tests 209 pairs of parts in 833 positions. Status as of October 26, 2026: zero collisions.

  • Deviation below 0.05 mm

    In facet mode, the central ray of each mirror misses the target by less than 0.05 mm at 4.6 m and 0.2 mm at 32 m.

  • Security thresholds

    The risk module calculates heat flux using HSE and API RP 521 thresholds: 1.2, 2.5, 9.5, 12.5 and 25 kW/m², time to skin pain, and the risk to eyes based on Ho et al. (2011).

04Interior design

A device in a real location

Set the device and target on the map or by entering an address. Terrain data comes from elevation datasets, buildings from OpenStreetMap, and the city model from Google Photorealistic 3D Tiles via Cesium ion photogrammetry. The target can be any point in space: a window, a panel, or part of a wall.

Select the date and time from a calendar, or run the day in fast-forward. The same scene works in VR headsets and in AR mode with a view of the surroundings (WebXR).

05Build package

One button: everything you need for the workshop

The “Download print package” button provides a ZIP archive with 38 files, about 111 MB. It contains 28 STL files for 211 parts to print and cut, plus 4 SVG drawings of plates and mirrors to cut from a sheet. It also includes an Arduino sketch, a materials list in CSV and Markdown, and the project quote and parameters in JSON.

For the default configuration, the bill of materials has 107 items. Buy 80, 3D-print 20, cut 4 from sheet material, and cast or print 3 parts. The fasteners alone total 340: 70 screws, 30 nuts and 240 washers. In addition, there are 74 servos, 5 PCA9685 controllers, 2 28BYJ-48 motors and a DS3231 clock.

The entire device weighs 74.4 kg. Materials cost 8,608.73 PLN net according to the October 2026 price list, and FDM printing takes approximately 24.7 hours.

Manual and research card

Using the current parameters, the application generates a construction manual and a research report with calculation results in Polish and English, ready to print as PDFs. In the version dated October 26, 2026, the manual was 61 A4 pages and the research report was 32 pages.

06Controller

Arduino sketch written for a specific project

The generator selects a board based on the number of mirrors: Arduino Uno for up to 61 facets, Mega 2560 for up to 432, and ESP32 for up to 864. For 37 facets, it selects Mega 2560. The sketch then has 2,128 lines and is estimated to use about 44.9 kB of flash memory.

The servos are controlled by PCA9685 modules, with 8 facets per module. A DS3231 clock provides UTC time, and a Hall sensor provides the zero position, with calibration stored in EEPROM. The controller has a SAFE button and a power limiter for the focused beam.

Virtual Arduino in the browser

The sketch core also runs in the app. C++ code is translated into JavaScript and run on emulated hardware: microsecond timing, step interrupts, Hall sensor hysteresis, servos and EEPROM. You can see what the controller does before anything is uploaded to the board.

07Applications

What is a heliostat used for

  • Supplementary lighting for photovoltaic panels

    The mirror directs additional light onto a panel that is in the shade or at the wrong angle at that time of day. Set the intensity with a margin, because focused light overheats the cells.

  • Point and surface heating

    A focused beam heats a selected point, while a diffused beam heats a larger area. The power limiter in the controller keeps output below the threshold.

  • Several devices, one goal

    Ultimately, several heliostats target the same point. The “Matrix” tab in the app calculates this configuration.

  • Optics research station

    The research card provides power, intensity distribution, and energy for a specific location, date, and distance.

  • Independent construction

    The STL package, bill of materials, schematic, and manual guide you from printing the parts through to commissioning the controller.

08Project status

What’s next for us

The figures on this page come from a simulation, not from measurements of a built device. The application states this in its own footer: “Engineering simulation. Estimated results. Verify by measurement before building.”

The project documentation includes a list of 14 known gaps. For example, the controller box does not have an interior yet, and the NEMA motor will not fit in the mounts for the 28BYJ-48 motors. We tested VR and AR mode in the emulator. Testing with the Quest 3 headset is still ahead of us.

Concentrated light burns and ignites, and its reflection damages eyesight. Before installing the device outdoors, check where the beam falls throughout the day.

Production footage

Renders from the app, version 1.0.0 dated October 28, 2026.

Questions and answers

Questions about Sunspot

Is Sunspot artificial intelligence?

No. The application does not call any AI model. The code calculates component dimensions, optics and loads using formulas and standards: NOAA, Monte Carlo, EN 1991-1-4, ISO 6336 and ISO 281. AI was used to write the code itself: AI agents wrote it, while a person defined the requirements and approved the changes.

How much does the app cost, and do I need to create an account?

The app is free and runs in a browser at sunspot.hexart.io, with no account required. Materials for the device in its default configuration cost approximately PLN 8,608.73 net, based on the October 2026 price list.

What’s in the print-ready package?

ZIP archive with 38 files: 28 STL files for 211 parts to print and cut, 4 SVG drawings of plates and mirrors, an Arduino sketch, a materials list in CSV and Markdown, a quote, and project parameters in JSON.

Which Arduino does the controller run on?

The generator selects a board based on the number of mirrors: Arduino Uno for up to 61 facets, Arduino Mega 2560 for up to 432, and ESP32 for up to 864. For the default of 37 facets, it selects the Mega 2560.

Can I change the device size?

Yes. The project defines 156 parameters across 13 groups: location, purpose, mirror, focusing, dome, mechanism, structure, loads, thermal properties, and more. Changing the number of mirror rings from 3 to 4 gives 61 facets instead of 37, and the package, materials list, and sketch are recalculated.

How reliable are the results?

This is an engineering simulation. The app provides estimated results and asks you to verify them with measurements before building. The figures on this page also come from a simulation, not from measurements of a built unit.

Do you have a device that can be described by its specifications?

Sunspot was created in three days, from requirements to an STL package, a controller schematic and a manual. If your product can also be quantified, tell us what it should do.

Schedule a workshop with Paul

Choose thirty minutes or a full workshop. Book a time slot in the calendar, receive immediate confirmation.