# Color Simulation of Multilayered Thin Films Using Python
## 3 Results and Discussion  
To validate the Python code used for simulating the color of multilayered structures, we simulated the colors of three different oxide thin films (SiO\({}_{2}\), SnO\({}_{2}\), and ZnO) deposited on a Si substrate as a function of the films' thickness and compared them with the literature and our own experiment. We first checked the color of the SiO\({}_{2}\) thin film on a Si substrate using a function of the film thickness. It can be clearly seen that the obtained color chart is very consistent with the reported simulation result (Figure 4a) [35]. For the comparative analysis with our experiment, we fabricated a SnO\({}_{2}\) film with a thickness gradient on a Si wafer using a sputtering method and measured its thicknesses by performing line profile measurements across a masked area using noncontact (tapping mode) atomic force microscopy (AFM; Icon-PT-PLUS, Bruker, Germany). For each point, three independent line profile measurements were taken to obtain average thickness and estimate the standard deviation. The step size of the line profile measurements was 1.5 \(\upmu\)m, and the standard deviation of the thickness values was generally around 0.3 nm. The base pressure was \(\approx\)3 \(\times\) 10\({}^{-8}\) Torr, and the working pressure of 10 mTorr was adjusted using Ar (99.9999%). The films were grown at room temperature. We assumed the presence of a 2 nm thick native oxide layer (SiO\({}_{2}\)) between the film and substrate [36; 37]. The two white dashed lines in Figure 4b indicate the experimentally measured thickness range (i.e., 76-385 nm). Although the thickness gradient of the experimental samples is nonlinear with respect to the position of each measured point, the colors and the thicknesses measured at the nine points are in good agreement with the theoretically predicted colors and thicknesses. Figure 5a shows the experimental colors of a ZnO thin film with a thickness gradient on a Si substrate, taken at different incident angles (5, 30, and 45\({}^{\circ}\)). Similarly to the SnO\({}_{2}\) thin film, we fabricated the ZnO film using the sputtering method and measured its thicknesses using AFM. As the incident angle increases, the overall color gradient shifts toward the thicker region, and as the thickness increases, the gradient becomes more pronounced. For instance, the color of the film changes from blue to magenta at 240 nm and from cyan to pink at 410 nm as the angle varies. To visualize the change in the color gradient, we simulated the colors of the ZnO thin film on a Si substrate, with a 2 nm thick SiO\({}_{2}\) layer in between the two, as a function of the thickness and angle (Figure 5b). In this simulation, we used the \(n\) and \(k\) values of ZnO from the literature [38]. The simulation results obtained using the Python code describe the experimental color variations as depending on both thicknesses and incident angles. The three white boxes in Figure 5b represent the color ranges expected for the given thicknesses and angle variations in the experimental sample. The theoretical results clearly demonstrate the color transition seen due to the change in angle: from cyan to pink in the thicker regions and with an expansion of the yellow region in the thinner regions. So far, we have obtained CIE XYZ values from simulated reflectance spectra and have converted them into sRGB for more intuitive color representations. Additionally, using Equations (32) and (33), we can transform CIE XYZ into CIE xy, allowing us to map the colors onto the CIE 1931 color space. This two-dimensional color space facilitates the identifying of color differences and supports a device- and observer-independent color representations suitable for various display and printing applications. Figure 6 shows the  
Figure 4: Comparison of simulated colors with literature and experiment: (**a**) SiO\({}_{2}\) thin film on a Si substrate: simulated colors as a function of the SiO\({}_{2}\) film thickness from literature (upper) [35] and by Python code in this study (lower).