Author Archives: Charles Xie

A demo of Infrared Street View

An infrared street view
The award-winning Infrared Street View program is an ambitious project that aims to create something similar to Google's Street View, but in infrared light. The ultimate goal is to develop the world's first thermographic information system (TIS) that allows the positioning of thermal elements and the tracking of thermal processes on a massive scale. The applications include building energy efficiency, real estate inspection, and public security monitoring, to name a few.
An infrared image sphere


The Infrared Street View project is based on infrared cameras that work with now ubiquitous smartphones. It takes advantages of the orientation and location sensors of smartphones to store information necessary to knit an array of infrared thermal images taken at different angles and positions into a 3D image that, when rendered on a dome, creates an illusion of immersive 3D effects for the viewer.

The project was launched in 2016 and later joined by three brilliant computer science undergraduate students, Seth Kahn, Feiyu Lu, and Gabriel Terrell, from Tufts University, who developed a primitive system consisting of 1) an iOS frontend app to collect infrared image spheres, 2) a backend cloud app to process the images, and 3) a Web interface for users to view the stitched infrared images anchored at selected locations on a Google Maps application.

The following YouTube video demonstrates an early concept played out on an iPhone:



High school students to solarize the city of Lowell — virtually


In April, high school students in Lowell, Massachusetts will start exploring various solarization possibilities in the city of Lowell -- famously known as the Cradle of American Industrial Revolution. Many municipal properties and apartment buildings in Lowell have large roofs that are ideal for rooftop solar installations. Public parking facilities also provide space for installing solar canopies, which serve the dual purpose of generating clean energy and providing shade for parked cars. Students will discover the solar potential of their city and calculate the amount of electricity that can generated based on it.

This project is made possible by our Energy3D software, which supports engineering-grade solar design, simulation, and analysis. The Lowell High School, local business owners, and town officials have been very supportive about this initiative. They provided a number of public and private sites for students to pick and choose. Some of them have even agreed to serve as the "clients" for students to provide specifications, inputs, and feedback to students while they are carrying out this engineering project.

Among the available sites, five public parking garages managed by the municipal authority, which have not installed solar canopies, will be investigated by students through feasibility studies that include 3D modeling, solar energy simulation, and financial planning. Through the project work, students will author reports addressed to the property owners, in which they will recommend appropriate solar solutions and financial options.

Solving real-world problems like these creates a meaningful and compelling context and pathway for students to learn science and engineering knowledge and skills. Hopefully, their work will also help inform the general public about the solar potential of their city and the possibility of transitioning it to 100% renewable energy in the foreseeable future, which is a goal recently set by Massachusetts lawmakers.

Designing building-integrated photovoltaics with Energy3D

Fig. 1: An example of solar facade.
Building-integrated photovoltaics (BIPV) represents an innovative way to think and design buildings as both human dwellings and power plants. In BIPV, solar panels or photovoltaic thin films are used to replace conventional constructional materials in parts of the building envelope such as roofs, walls, and even windows. Designing new buildings nowadays increasingly includes BIPV elements to offset operational costs. Existing buildings can also be retrofitted with BIPV (e.g., replacing glass curtain walls with solar panels). BIPV is expected to grow more important in architectural design and building engineering.

Fig. 2: An example of solar curtain walls
We are developing modeling capabilities in Energy3D to support the design, simulation, and analysis of BIPV. Figures 1 and 2 in this article show a few cases that demonstrate these capabilities in their primitive forms. Considering BIPV is relatively new and a lot of research is still under way to develop and test new ideas and technologies, we expect the development of these capabilities in Energy3D will be a long-term effort that will be integrated with latest research and development in the industry.
Fig.3: Power balancing throughout the day.

As the first step towards that long-term vision, the current version of Energy3D has already allowed you to add solar panel racks to any planar surface, being it horizontal, vertical, or slanted. Running a simulation for any day, you will be able to predict the daily output of all the solar panels. You can also compare the outputs of selected arrays. For example, if you want to track down on which side solar panels produce the most at a given time during the day, you can compare them in a graph. Figure 3 shows a comparison of the solar arrays in the model shown in Figure 1. As you can see, the east-facing array produces peak energy in the morning whereas the west-facing array produces peak energy in the afternoon. In this case, the BIPV solution ensures that the photovoltaic system generates some electricity at different times of the day.

Video tutorial: Solarize an imported building in Energy3D

We are pleased to announce that the solar panel and analysis tools in Energy3D (version 6.5.6 or higher) are now fully applicable to arbitrary imported structures. We hope that the new capabilities can help engineers who design rooftop solar systems and building solar facades to get their jobs done more efficiently and students who are interested in engineering to learn the theory and practice in an inquiry-based fashion. The six-minute video in this article demonstrates how easy it is to perform solar panel design and analysis in Energy3D. (Note: Unfortunately, the annotations in the video do not show if you are watching this on a smartphone.)



One of the handiest features is the automatic, real-time detection of the angle of the surface under a solar panel while the user is moving it. This feature basically allows the user to drag and drop a solar panel or a solar panel rack anywhere (on top of roofs, walls, or other surfaces) without having to set its tilt angle manually.

Solar heat map of a house with solar panels
Copy and paste a house with solar panels
Solar panels are "first-class citizens" in Energy3D as they are readily recognized by the built-in simulation engines. Energy3D provides a comprehensive list of properties that you can choose for each solar panel or solar panel array. For example, even the temperature coefficient of Pmax, a parameter that specifies the change of solar cell efficiency with regard to ambient temperature change, is supported. The software also has a variety of analytic tools for predicting the hourly, daily, and annual outputs of each solar panel and their sums. Interactive graphs are available to intuitively show the trends and allow the user to compare the outputs of different solar panels, of different arrays, on different days, or with different environmental settings (e.g., with or without a tree nearby).

These "native" solar panels are now completely blended into the "alien" meshes of structures imported into Energy3D from other CAD software or Google Earth. For example, once you drop a solar panel on a surface of the structure, it will stick to it. In other words, if you move or rotate the structure, the solar panel will go with it as if it were part of the original design. When you copy and paste the entire building, the solar panels will be copied and pasted as well (by the way, it takes only four clicks to copy and paste a building in Energy3D through the pop-up menu: one click to pick which one to act upon, one click to select the "Copy" action, one click to pick where to paste, and one last click to select the "Paste" action). That is to say, the native and alien meshes are completely meshed.

Automatic remeshing in Energy3D for solar analysis

A headache in the practice of simulation-based engineering or computer-aided engineering is the incompatibility of the meshes used to create and render structures (let's call them the drawing meshes) and the meshes needed to simulate and analyze certain functions (let's call them the analysis meshes). This incompatibility stems deeply from the fundamental differences in computer graphics for visual rendering and computer simulation for physics modeling.

When importing a model from a CAD tool into a simulation tool, engineering analysts often have to recreate new analysis meshes for their computation, which requires fine-grained discretization such is in the case of finite element analysis and other methods. It becomes a nightmare when the conversion from the drawing meshes to the analysis meshes can only be done manually. Even if only a few drawing meshes need to be taken care by hand while the majority of the meshes can be converted automatically, the analyst still would have to check all the meshes to make sure that every mesh is good for simulation. So we really need a tool that can deal with all sorts of scenarios. And this kind of tool is by no mean easy to develop.


Mesh incompatibility was (and may remain for a long time) a problem for Energy3D when it imports structure models created by other tools such as SketchUp. For example, in most architectural CAD models, a structural element such as a wall or a roof (or a part of them) is represented by two planar meshes that have exactly opposite normal vectors, representing the interior and exterior surfaces, respectively. These two meshes have identical coordinates for their vertices, though the orders of their definition are different (one goes clockwise and the other anticlockwise in order for their normal vectors to be exactly opposite). Whatever they represent has therefore no thickness, but with the two faces, we can apply two different textures to them so that the viewer can tell if they are looking at its interior or exterior surface.


While this sounds good to people who use such models in 3D games, it spells troubles to Energy3D. The first problem is that it increases the number of vertices that Energy3D has to load and, therefore, the memory footprint of such models. In a physics simulation, a structural element without thickness is meaningless. If we don't really need the two faces in most cases (we do in some other cases, but I will skip that line of discussion in the article), why bother to import them in the first place? Despite spending days on researching on the Internet and checking the Collada specification, I couldn't figure out how to force SketchUp to export only the exterior meshes (SketchUp's Colloda export function does provide the option of exporting two-sided faces or not, but it sometime exports only the interior sides for some meshes, mixed with exterior sides for others). So it occurred to me that I had to deal with them in the Energy3D code.

If we don't treat them and use the meshes as they are, we then have the second problem: which mesh should we pick to be the side that receives solar radiation? While it is self-evident which mesh of the two identical ones faces outside when we look at the 3D model after it is rendered on the computer screen, we absolutely have no way to tell from their coordinates alone in our code. Somehow, we have to invent an algorithm that simulates how people discern it when they look at the 3D view of the model on a computer screen.

Picking and choosing the right meshes, of course, is crucial to the correctness of the simulation results. In order to test the new algorithms in Energy3D, I selected the lower Manhattan island and the US Capitol Building as two test cases. The results of the lower Manhattan island have been reported in an earlier article. But the Capitol Building has turned out to be a harder case as -- with over 15,000 meshes -- it is geometrically more complicated and it has so many details that really put our code to test. After more than a week of my work on solving a myriad of problems, it seems that Energy3D has passed the test (or has it?). The screenshots of the solar irradiance heat maps of the Capitol Building from different angles show that severe anomalies are practically non-existent across the heat maps.


The heat maps occasionally suffer from a flickering effect called "Z-fighting" when two planar surfaces are visually close, especially when being looked at from a distance sufficiently far away. For the Z-fighting between identical meshes, this can be mitigated by increasing the offset of their distance. But, as this doesn't affect the simulation result, it is less a concern for the time being.

Automatic remeshing for solar analysis may also need to include automatic repair of models that contain errors. For example, some models may contain surfaces that have only one mesh with the normal vector pointing inward (this could happen if the original designer accidentally used the "Reverse Faces" feature in SketchUp without realizing that the normal vectors would be flipped). This kind of mesh is tolerated in SketchUp because it does not affect rendering. But they cannot be tolerated in Energy3D because such a single-face mesh with a north-pointing normal vector, which appears to the viewer as south-facing, will show little to zero solar radiation when the sun shines on it. Luckily, due to the visualization in Energy3D, we can quickly spot those incorrect surfaces and fix them by reversing their faces manually. But we will need to find a way to automate this process (not easy, but not impossible).

Solar analysis of metropolitan areas using Energy3D

Fig. 1: Sunshine at the lower Manhattan island
Energy3D can be used to analyze the solar radiation on houses, buildings, and solar power plants to help engineers design strategies for exploiting useful solar energy or mitigating excessive solar heating. This blog post shows that Energy3D may also be used to analyze the solar radiation in large urban areas (e.g., to study the effect of urban heat islands).

Fig. 2: Solar irradiance heat map of Manhattan on 4/25
To demonstrate this application, I chose a 3D model of a section of the lower Manhattan island as a test. The 3D model was downloaded from SketchUp's 3D Warehouse. It was supposedly created after the lower Manhattan island in 2008. I didn't bother to check for accuracy as this was supposed to be a test of Energy3D. Figure 1 shows the model of the Manhattan area.

Fig. 3: More solar irradiance heat maps.
The model has more than 8,000 meshes of various sizes (a mesh is a polygon area for computational analysis and graphical rendering in Energy3D). The entire area is so big that even a low-resolution daily simulation took more than five hours to complete on my Surface Book computer. Figures 2 and 3 show the rendering of the solar irradiance heat map on top of the 3D model after the computation completes.

Our next step is to figure out how to optimize our simulation engine to speed up the calculations. The latest version of Energy3D already includes some optimizations that allow faster re-rendering of the solar irradiance heat map by re-generating the texture images without re-calculating the solar irradiance distribution.

Importing and analyzing models created by other CAD software in Energy3D: Part 2


Fig.1: The Gherkin (London, UK)
In Part I, I showed that Energy3D can import COLLADA models and perform some analyses. This part shows that Energy3D (Version 6.3.5 or higher) can conduct full-scale solar radiation analysis for imported models. This capability officially makes Energy3D a useful daylight and solar simulation tool for sustainable building design and analysis. Its ability to empower anyone to analyze virtually any 3D structure with an intuitive, easy-to-use interface and speedy simulation engines opens many opportunities to engage high school and college students (or even middle school students) in learning science and engineering through solving authentic, interesting real-world problems.
Fig. 2: Beverly Hills Tower (Qatar)

There is an ocean of 3D models of buildings, bridges, and other structures on the Internet (notably from SketchUp's 3D Warehouse, which provides thousands of free 3D models that can be exported to the COLLADA format). These models can be imported into Energy3D for analyses, which greatly enhances Energy3D's applicability in engineering education and practice.

Fig. 3: Solar analysis of various houses
The images in this post show examples of different types of buildings, including 30 St Mary Axe (the Gherkin) in London, UK (Figure 1) and the Beverly Hills Tower in Qatar (Figure 2). Figure 3 shows the analyses of a number of single-family houses. All the solar potential heat maps were calculated and generated based on the total solar radiation that each unit area on the building surfaces receive during the selected day (June 22).

These examples should give you some ideas about what the current version of Energy3D is already capable of doing in terms of solar energy analysis to support, for example, the design of rooftop solar systems and building solar facades.

In the months to come, I will continue to enhance this analytic capacity to provide even more powerful simulation and visualization tools. Optimization, which will automatically identify the boundary meshes (meshes that are on the building envelope), is currently on the way to increase the simulation speed dramatically.

Importing and analyzing models created by other CAD software in Energy3D: Part 1

Fig. 1: Solarize a COLLADA model in Energy3D
Fig.2: A house imported from SketchUp's 3D Warehouse
Energy3D is a relatively simple CAD tool that specializes in building simulation and solar simulation. Its current support for architectural design is fine, but it has limitations. It is never our intent to reinvent the wheel and come up with yet another CAD tool for architecture design. Our primary interest is in physics modeling, artificial intelligence, and computational design. Many users have asked if we can import models created in other CAD software such as SketchUp and then analyze them in Energy3D.

Fig. 3: A house imported from SketchUp's 3D Warehouse
I started this work yesterday and completed the first step today. Energy3D can now import any COLLADA models (*.dae files) on top of a foundation. The first step was the inclusion of the mesh polygons in the calculation of solar radiation. The polygons should be able to cast shadow on any object existing in an Energy3D model. This means that, if you have a 3D model of a neighboring building to the target building, you can import it into Energy3D so that it can be taken into consideration when you design solar solutions for your target. Once you import a structure, you can always translate and rotate it in any way you want by dragging its foundation, like any existing class of object in Energy3D.

Fig. 4: A house at night in Energy3D
Due to some math difficulties, I haven't figured out how to generate a solar radiation heat map overlaid onto the external surfaces of an imported structure that are exposed to the sun. This is going to be a compute-intensive task, I think. But there is a shortcut -- we can add Energy3D's solar panels to the roof of an imported building (Figure 1). In this way, we only have to calculate for these solar panels and all the analytic capabilities of Energy3D apply to them. And we can get pretty good results pretty quickly.

Fig. 5: A 3D tree imported from SketchUp's 3D Warehouse
Figures 2-4 show more examples of how houses designed with SketchUp look like in Energy3D after they are imported. This interoperability makes it possible for architects to export their work to Energy3D to take advantage of its capabilities of energy performance analysis.

Being able to import any structure into Energy3D also allows us to use more accurate models for landscapes. For instance, we can use a real 3D tree model that has detailed leaves and limbs, instead of a rough approximation (Figure 5). Of course, using a more realistic 3D model of a tree that has tens of thousands of polygons slows down the graphic rendering and simulation analysis. But if you can afford to wait for the simulation to complete, Energy3D will eventually get the results for you.

Why is Israel building the world’s tallest solar tower?

Fig. 1: Something tall in Negev desert (Credit: Inhabitat)
The Ashalim solar project (Figure 1) in the Negev desert of Israel will reportedly power 130,000 homes when it is completed in 2018. This large-scale project boasts the world’s tallest solar tower -- at 250 meters (820 feet), it is regarded by many as a symbol of Israel’s ambition in renewable energy.

Solar thermal power and photovoltaic solar power are two main methods of generating electricity from the sun that are somewhat complementary to each other. Solar tower technology is an implementation of solar thermal power that uses thousands of mirrors to focus sunlight on the top of a tower, producing intense heat that vaporizes water to spin a turbine and generate electricity. The physics principle is the same as a solar cooker that you have probably made back in high school.

Why does the Ashalim solar tower have to be so tall?

Surrounding the tower are approximately 50,000 mirrors that all reflect sun beams to the top of the tower. For this many mirrors to "see" the tower, it has to be tall. This is easy to understand with the following metaphor: If you are speaking to a large, packed crowd in a square, you had better stand high so that the whole audience can see you. If there are children in the audience, you want to stand even higher so that they can see you as well. The adults in this analogy represent the upper parts of mirrors whereas the children the lower parts. If the lower parts cannot reflect sunlight to the tower, the efficiency of the mirrors will be halved.

Fig. 2: Visualizing the effect of tower height
An alternative solution for the children in the crowd to see the speaker is to have everyone stay further away from the speaker (assuming that they can hear well) -- this is just simple trigonometry. Larger distances among people, however, mean that the square with a fixed area can accommodate less people. In the case of the solar power tower, this means that the use of the land will not be efficient. And land, even in a desert, is precious in countries like Israel. This is why engineers chose to increase the height of tower and ended up constructing the costly tall tower as a trade-off for expensive land.

Fig. 3: Daily output graphs of towers of different heights
But how tall is tall enough?

Fig. 4: Energy output vs. tower height
This depends on a lot of things such as the mirror size and field layout. The analysis is complicated and reflects the nature of engineering. With our Energy3D software, however, complicated analyses such as this are made so easy that even high school students can do. Not only does Energy3D provide easy-to-use 3D graphical interfaces never seen in the design of concentrated solar power, but it also provides stunning "eye candy" visualizations that clearly spell out the science and engineering principles in design time. To illustrate my points, I set up a solar power tower, copied and pasted to create an array of mirrors, linked the heliostats with the tower, and copied and pasted again to create another tower and another array of mirrors with identical properties. None of these tasks require complicated scripts or things like that; all they take are just some mouse clicks and typing. Then, I made the height of the second tower twice as tall as the first one and run a simulation. A few seconds later, Energy3D showed me a nice visualization (Figure 2). With only a few more mouse clicks, I generated a graph that compares the daily outputs of towers of different heights (Figure 3) and collected a series of data that shows the relationship between the energy output and the tower height (Figure 4). The graph suggests that the gain from raising the tower slows down after certain height. Engineers will have to decide where to stop by considering other factors, such as cost, stability, etc.

Note that, the results of the solar power tower simulations in the current version of Energy3D, unlike their photovoltaic counterparts, can only be taken qualitatively. We are yet to build a heat transfer model that simulates the thermal storage and discharge accurately. This task is scheduled to be completed in the first half of this year. By that time, you will have a reliable prediction software tool for designing concentrated solar power plants.

Modeling the six MW solar farm at the Palmer Metropolitan Airfield in Massachusetts

Fig. 1 Aerial view of PMA (courtesy of Borrego Solar)
Fig. 2 The polygon tool for drawing land parcels
The Palmer Metropolitan Airfield (PMA) solar farm (Figure 1) is the first and, at 6 MW, the largest Massachusetts Department of Energy Resources qualified brownfield project under the SREC II solar energy incentive program. The solar farm consists of 20,997 solar panels of three different types (5,161 Suniva, 13,851 Yingli, and 1,985 Canadian Solar), connected by 74 SMA string inverters. It is expected to produce an estimate of 8.5 GWh annually, enough to power 1,000 homes and offset 4,000 tons of carbon dioxide every year -- according to this news source. The PMA solar farm was engineered by our partner, Borrego Solar, the third largest company in the commercial solar market in the US.

Fig. 3 The Automatic Layout Wizard for solar rack arrays
The PMA solar farm is the first test of Energy3D's capacity of seriously designing utility-scale (greater than 1 or 5 MW, depending on your point of view) photovoltaic solar power plants. This design capacity was enabled by three critical new features that were added only recently to Energy3D (V6.2.2): 1) A tool to draw polygons that represent parcels of land for solar farms; 2) a tool to automatically generate solar panel and rack array layouts within selected parcels of land; and 3) accelerated graphical user interface and numerical simulation to handle 10,000+ solar panels (which I have blogged earlier this month).

Fig. 4 The result of the Automatic Layout Wizard
Since Energy3D can import an Earth view image from Google Maps, you can directly draw polygons on top of the image to trace the parcel of land for designing your solar farm (Figure 2). Note that if you have multiple parcels of land that are separate from one another, you may have to use multiple foundations in Energy3D as each foundation is allowed to have one and only one polygon for the time being.

Fig. 5 Heat map representations of output in four seasons.
Fig. 6 Annual yield vs. tilt angle
As soon as you are all set with your land plans, you can use the Automatic Layout Wizard of Energy3D to add solar panel rack arrays (Figure 3). This wizard will automatically generate the array layout within the selected land parcel and assign properties to the solar panels based on the parameters of your choice. For instance, you can select how many rows of solar panels you want to have on each rack (I picked four because that is what Google Maps shows about the setting in PMA). Figure 4 shows the result of applying the Automatic Layout Wizard to populate the three subfields of the PMA solar farm.
Fig. 7 Monthly yields vs. tilt angle

After the layout is done, you can always revise the field. You can drag any rack to resize or move it, delete it, copy and paste it, or add a new rack. The Automatic Layout Wizard is not the only way to add solar panel arrays. It is just a super fast way to add thousands of solar panels at once -- without the wizard, it would have been too time-consuming to manually add solar panel racks one by one. The solar panel field is always editable after a layout is applied.

Let's now check how close our model is to reality. The total number of solar panels of our model is 21,064 -- only 67 more than that of the real PMA solar farm (I had no information about the exact types of solar panels deployed in PMA, so I guessed and selected two different sizes 0.99m x 1.65m and 0.99m x 1.96m for different subfields).

In terms of the annual output, Energy3D predicts approximately 9.6 GWh, about 12% higher than the estimated output of 8.5 GWh by Borrego Solar. I currently do not have access to the real operational data, though.

Having created a computer model allows us to experiment with it to study how to optimize the design. For example, we can easily change the tilt angles of the arrays and investigate how the annual yield is affected. Figure 6 shows that a tilt angle close to the latitude (42 degrees) seems to result in the highest overall annual output.

But the total annual output is not necessarily the only criterion. Sometimes, it is necessary for solar companies to consider load balancing to guarantee stable outputs throughout the year (assuming that we want to minimize the use of base load from burning fossil fuels). It is, therefore, interesting to also take a look at the outputs across 12 months of a year. Figure 7 suggests that a smaller tilt angle will produce peak power in the summer, whereas a larger tilt angle will produce peak power in early fall. If the demand of electricity in the summer is higher than that in the fall, it may be more lucrative to position solar panels at a lower tilt angle.