WEB APP
/Sunpower
ADVANCED DESIGN TOOL
TIME
13 MONTH
ROLE
PRODUCT DESIGN

TEAM COMPONENTS
product design
1 product designer
Development
3 front-end
2 back-end
2 ML
management
1 Product manager
1 SD manager
SEC.
/OVERVIEW
Introduction
SunPower solar design process
SunPower provides solar energy services that includes helping homeowners design solar panel layouts for their roofs, aiming to maximize energy production and savings on energy bills. Once a customer submits their address, it becomes a lead, passed on to our internal team (Maxfit). Using specialized software, the team designs a layout tailored to the roof’s structure, accounting for obstructions (like chimneys and pipes) and local regulations. The design is then reviewed by SunPower’s sales team, who discuss it with the customer to finalize the agreement.
the challenge
Handling hundreds of design requests daily, our internal team (Maxfit) relied on a costly third-party tool with manual design processes, which often caused delays for our sales team in delivering designs and quotes. Despite the high cost, the tool lacked proper integration with our company’s product ecosystem, leading to design errors and further inefficiencies.
Our solution – Advanced design tool
We aim for a tool to replace the costly third-party software that can
Automatically generate solar panel layouts within the roof outline and local government restrictions using machine learning (ML).
Seamlessly integrate with our company’s existing product ecosystem, streamlining workflows and reducing errors.
SEC.
/Approach #1
IDEAL– ml only approach
We imagine the ideal flow is: users put customers' addresses, and the software will automatically generated 3D houses with solar panels on rooftop.
insert Address
ML-GEN
result
99% of the auto-generated models were unusable.
We built the tool and ran a test with 50 roofs and found that most of the panel layouts were inaccurate due to broken or twisted roof planes.

*Example of 3D site model generated by our initial automation system. Yellow highlights are the walk-ways, gray rectangles are solar panels. In the image, it is obvious that the 3D roof planes are mismatched
Problem
There are many reasons can cause the ML models struggle: Limited data Low resolution on the satellite imagery Complexity of the environment of the house
Conclusion
Despite addressing the poor-quality data, we decided to take a step back. Rather than going for fixing everything, we shifted our focus to roof generation first, as it’s the crucial first step for automating panel placement. We want a tool that allowing users to fixed the "broken roof", which led us to the approach #2
SEC.
/iteration #2
Approach #2 – with manual input
We introduced tools allowing users to manually adjust roof outlines in a 3D environment to get a more accurate result.
Editing Feature enables users to modify and adjust the generated 3D roof outlines for accuracy and alignment with the actual structure.
insert Address
ML-GEN
manual fix
result
90% of the models taking users 3-5 times longer than expected to fix the roof outlines.
We conducted multiple rounds of user testing to measure how long it took to create accurate 3D roof models. We discovered that fixing 'broken roofs' took users longer than starting from scratch with the third-party tool, showing that our system still wasn’t meeting efficiency goals.

*3D site model generated with auto-gen and edit tool, the image shows user edit the roof in 3D environment
Problem
Although users can now fix the generated models, some parts of the roofs are still occasionally missing, and the roof planes often aren’t cleanly shaped. This makes the process time-consuming and requires significant effort to fix.
Conclusion
What if we let users define the roof edges using tools, and then generate the 3D model afterward? This question led us to approach #3.
SEC.
/Approach #3
Approach #3 – manual input first
We introduced a manual tool that allows users to trace the roof outline on a 2D map. Once done, user then click on a button to generate 3D site model.
Manual Drawing Tool: Users trace and adjust the roof outline on a 2D map using a drawing tool.
insert Address
manual draw
ML-GEN
manual fix
result
In fact, allowing users to manually define the roof edges provides more accurate data for the machine learning model. In return, users get better-generated 3D site models over time. Eventually, some users no longer need to fix the models, significantly improving their work efficiency.
Draw Roof Prototype
Generate site model Prototype
overall 3D ROOF Generation flow

SEC.
/Impact
Results
The new approach significantly improved the usability of the Auto-gen feature by:
increased
95%
usable rate
95% more accurate rooftop models, resulting in higher precision for detecting roof planes and obstructions.
reduced
2-3x
completion time
2-3x faster 3D site model generation compared to previous approaches
site model with approach #2

site model with approach #3

*Both images show a generated 3D site model with obstruction(chimneys)on the roof tops. As you can see, the outline of the roofs on the right hand side is more clean than the one on the left hand side of which roofs are in irregular shapes, and not in line with the actual roof on the map.
Look into the future
Our ultimate goal is to fully automate the process of creating accurate solar panel layouts. So far, we’ve identified the key components for successful roof creation, which sets us up for the next phase: Reintegrating the panel placement process Incorporating local solar installation requirements By addressing these areas, we’ll be able to significantly speed up the design process, making it faster and more efficient for all our customers.
/learnings
Lessons Learned
This project offered valuable insights for both successes and areas for improvement. Here’s what I learned and what I would do differently next time.
01.
Don’t Fully Rely on Technology
While machine learning offers powerful automation, I learned that it's essential to build flexibility into the product. Over-reliance on ML without manual control can lead to inefficiencies when the model fails. Having a backup plan—such as manual adjustment tools—is crucial for maintaining a functional and adaptable user experience.
02.
Iterate Early and Often
In ML-driven projects, frequent iteration and testing are critical. Early testing helped us identify key issues, such as the limitations of the auto-generated roof models, which informed our decision to introduce manual adjustments.
03.
Prioritize User Experience in Automation
Even with advanced technology like ML, the user's workflow should always be a top priority. Automating a process is valuable only if it genuinely improves user efficiency and doesn’t introduce more complexity or frustration. In this project, integrating manual tools alongside automation ensured a smoother, more reliable experience.
view more
work
work.
/next
LET'S CREATE TOGETHER
