Systems, media, and methods for metasurface development

Through the method of combining neural network generator and simulator, pixelated loss and manufacturability loss are used to optimize the metasurface design, solving the problems of low generation efficiency and difficult to process absorption characteristics in the prior art, and achieving efficient and diversified metasurface design generation.

CN120359484APending Publication Date: 2025-07-223M INNOVATIVE PROPERTIES CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380085252.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-12
Filing Date
2023-12-08
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently generate optical metasurface designs suitable for augmented reality films, under-screen fingerprint reader films, switchable privacy films and LIDARs. The training process relies on a large amount of data and gradient calculations, so it is impossible to effectively process absorbency characteristics.

Method used

A neural network generator is used to train the metasurface design in combination with simulator and loss function, and generate the metasurface design by randomizing data and physical parameter values, and optimize the design with pixelated loss, solid loss and manufacturability loss, combined with a physical attribute estimator based on machine learning, to achieve gradient-free training.

Benefits of technology

It improves the generation efficiency and quality of metasurface design, can generate diverse designs that meet different application needs, and reduces dependence on large amounts of training data, especially flexibility in dealing with absorbent characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120359484A_ABST
    Figure CN120359484A_ABST
Patent Text Reader

Abstract

The present disclosure provides a device, the device comprising: at least one non-transitory computer readable storage medium on which instructions are stored; and processing circuitry coupled to the at least one non-transitory computer-readable storage medium, the processing circuitry configured to execute instructions to: provide randomized data to a neural network, receive a metasurface design from the neural network, the metasurface design comprising one or more features, provide the metasurface design to a simulator, and provide the simulator with the one or more features. The method includes receiving a performance value from the simulator, determining a loss value based on the performance value, updating the neural network based on the loss value, and outputting the neural network to at least one of a user interface, an external device, or at least one non-transitory computer-readable storage medium.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND OF THE DISCLOSURE

[0001] Electromagnetic metasurfaces (also referred to as metasurfaces) can modulate or otherwise affect the behavior of electromagnetic waves via deep subwavelength structures. For example, optical metasurfaces can modulate behavior within the visible spectrum or near the visible spectrum. Certain applications (such as augmented reality films, under-screen fingerprint reader films, switchable privacy films, LIDAR, and / or anti-photography films) can utilize optical metasurfaces. SUMMARY OF THE DISCLOSURE

[0002] In one embodiment, the present disclosure provides an apparatus that includes: at least one non-transitory computer-readable storage medium having instructions stored thereon; and processing circuitry coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions to: provide randomized data to a neural network, receive a metasurface design from the neural network, the metasurface design including one or more features, provide the metasurface design to a simulator, receive a performance value from the simulator, determine a loss value based on the performance value, update the neural network based on the loss value, and output the neural network to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium.

[0003] These and additional features provided by the embodiments described herein will be more fully understood in conjunction with the accompanying drawings and the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] Figure 1 is a block diagram of an exemplary system that utilizes and manages a communication-capable device in accordance with aspects of the present disclosure.

[0005] Figure 2 illustrates Figure 1 a perspective of operation of the system shown.

[0006] Figure 3 illustrates an exemplary metasurface in accordance with aspects of the present disclosure.

[0007] Figure 4 illustrates an exemplary process for training a generator to generate a metasurface design in accordance with aspects of the present disclosure.

[0008] Figure 5 illustrates an exemplary generator network in accordance with aspects of the present disclosure.

[0009] Figure 6 illustrates an exemplary maximally pixelated image in accordance with aspects of the present disclosure.

[0010] Figure 7Illustrates a comparison of a first metasurface generated by a generator that does not consider pixelation loss and a second metasurface generated by a generator trained using pixelation loss, in accordance with aspects of the present disclosure.

[0011] Figure 8 Illustrates a comparison of a first metasurface generated by a generator that does not consider solid loss and a second metasurface generated by a generator trained using solid loss, in accordance with aspects of the present disclosure.

[0012] Figure 9 Illustrates an exemplary process for adjusting a generator to generate a metasurface with one or more unknown physical parameter values, in accordance with aspects of the present disclosure.

[0013] Figure 10A Illustrates an exemplary diagram of incident light at an angle θ and a corresponding reflection using an optical metasurface, in accordance with aspects of the present disclosure.

[0014] Figure 10B Illustrates an exemplary diagram of incident light at an angle θ and a corresponding transmission using an optical metasurface, in accordance with aspects of the present disclosure.

[0015] Figure 11 Illustrates an exemplary process for training a generator using a machine learning-based physical property estimator, in accordance with aspects of the present disclosure.

[0016] Figure 12A Illustrates an exemplary metasurface design with discontinuous features, in accordance with aspects of the present disclosure.

[0017] Figure 12B Illustrates Figure 12A the stitching of copies of a metasurface design in

[0018] Figure 12C Illustrates an exemplary metasurface design that includes Figure 12A discontinuous features and aggregates them to form a continuous feature, in accordance with aspects of the present disclosure.

[0019] Figure 13 Illustrates an exemplary process of a similarity function, in accordance with aspects of the present disclosure.

[0020] Figure 14 Illustrates an exemplary process for training a metasurface design generator, in accordance with aspects of the present disclosure.

[0021] Figure 15 Illustrates an exemplary process for generating a metasurface design, in accordance with aspects of the present disclosure.

[0022] Figure 16 Illustrates exemplary manufacturability constraints imposed on a metasurface design, in accordance with aspects of the present disclosure.

[0023] Figure 17 Illustrates an exemplary process for training a generative adversarial network (GAN) to generate metasurface designs in accordance with aspects of the present disclosure.

[0024] Figure 18 Illustrates an exemplary process for training a GAN in accordance with aspects of the present disclosure.

[0025] Figure 19 Illustrates an exemplary process for using a GAN to generate metasurface designs in accordance with aspects of the present disclosure.

[0026] Figure 20 Illustrates an exemplary grid surface representation of a metasurface design in accordance with aspects of the present disclosure.

[0027] Figure 21 Illustrates an exemplary non-grid surface representation of a metasurface design in accordance with aspects of the present disclosure.

[0028] Figure 22 Illustrates an exemplary process for training a generator to generate metasurface designs using rasterization techniques in accordance with aspects of the present disclosure.

[0029] Figure 23 Illustrates an exemplary process for training a generator to generate metasurface designs using rasterization techniques in accordance with aspects of the present disclosure.

[0030] Figure 24 Illustrates an exemplary process for generating metasurface designs using rasterization techniques in accordance with aspects of the present disclosure.

[0031] Figure 25 Illustrates an exemplary process for generating metasurface designs using genetic algorithm techniques in accordance with aspects of the present disclosure.

[0032] Figure 26 Illustrates an exemplary process for generating metasurface designs and associated ray tracing data in accordance with aspects of the present disclosure. Detailed Description

[0033] Figure 1is a block diagram of an exemplary system 2 that utilizes and manages communication-capable devices in accordance with aspects of the present disclosure. System 2 includes a metasurface design system (MDS) 6 that is configured to provide metasurface design capabilities to computing devices 25 in accordance with aspects of the present disclosure. As described herein, MDS 6 enables an authorized user (e.g., one of users 24A through 24N) to generate metasurface designs. By interacting with MDS 6, a design professional can, for example, generate metasurface designs, train a metasurface generator, simulate metasurface designs, and / or generate ray tracing metrics. Generally speaking, MDS 6 provides design and simulation capabilities.

[0034] As Figure 1 illustrated by way of example, system 2 represents a computing environment in which a computing device (e.g., one of computing devices 25) can communicate electronically with MDS 6 via one or more computer networks 4. Network 4 can include one or more wired and / or wireless connections. For example, network 4 can include connections defined by the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of protocols, network connections (compliant with the IEEE 802.15 family of standards), network connections, short-range wireless (e.g., and / or near field communication (NFC)) connections, connections, and / or coaxial connections.

[0035] One or more of users 24A through 24N can use computing device 25 to interact with MDS 6 via network 4. For example, an end-user computing device 25 can include a laptop computer, a desktop computer, a mobile device such as a tablet or a so-called smart phone, can be the laptop computer, the desktop computer, the mobile device, or can be a part of the laptop computer, the desktop computer, or the mobile device.

[0036] User 24 (e.g., 24A to 24N) interacts with MDS 6 to generate a metasurface design, train a metasurface generator and / or model, simulate the metasurface design, generate metasurface design information (e.g., ray tracing data), and / or utilize an application related to the metasurface design. For example, user 24 can generate a metasurface design to meet one or more design parameters. Additionally, user 24 can interact with MDS 6 to simulate the metasurface design and / or generate ray tracing data to measure the performance of one or more metasurface designs. MDS 6 can enable user 24 to train a generator and / or model to create a metasurface design. In some examples, MDS 6 can present a web-based interface via a web server (e.g., an HTTP server) or can deploy a client application to a device of computing device 25 used by user 24, such as a desktop computer, a laptop computer, a mobile device such as a smart phone or a tablet, etc.

[0037] Figure 2 is an illustration Figure 1 A block diagram of an operational perspective of one example implementation of MDS 6 shown. Although Figure 2 one implementation of MDS 6 consistent with aspects of the present disclosure is shown, it will be understood that other architectures of MDS 6 (whether single-device architectures or distributed architectures) are also consistent with aspects of the present disclosure.

[0038] In Figure 2 the example, MDS 6 includes one or more processors 28 and a memory 32. In some examples, memory 32 and processor 28 can be integrated into a single hardware unit such as a system-on-chip (SoC) or an integrated circuit (IC). Each of processors 28 can include one or more of a multi-core processor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), processing circuitry (e.g., fixed-function circuitry, programmable circuitry, or any combination of fixed-function circuitry and programmable circuitry), or equivalent discrete logic circuitry or integrated logic circuitry. Memory 32 can include any form of memory for storing data and executable software instructions, such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory.

[0039] Memory 32 and processor 28 provide a computer platform for executing operating system 36. In turn, operating system 36 provides a multitasking operating environment for executing one or more software components 68. As shown, processor 28 is connected via input / output (I / O) interface 34 to external systems and devices, such as interfaces deployed at computing device 60 and the like. I / O interface 34 may incorporate network interface hardware, such as one or more wired and / or wireless network interface controllers (NICs) for communicating via communication channel 75, which may represent one or more network-enabled communication connections, such as one or more packet-switched networks. In Figure 2 the illustrated embodiment, bus 70 provides inter-component connectivity between processor 28, memory 32, and I / O interface 34. Bus 70 may represent a half-duplex or full-duplex bus providing data transfer capabilities between two or more of processor 28, memory 32, I / O interface 34, and / or any other hardware components in MDS 6. Bus 70 may represent various types of system buses or computer buses, including one or more bus networks. Regardless of the implemented topology, in various examples, bus 70 may incorporate various types of inter-component connectivity hardware, such as those compliant with any of the first, second, third, or fourth generation bus or bus network technologies as set forth by IEEE and / or other bus or bus network technologies defined in standards being developed or later adopted.

[0040] In Figure 2 a particular example, software components 68 of MDS 6 include a metasurface design generator application 68A, a model training application 68B, a simulator application 68C, and a ray tracing application 68D. In some exemplary methods, one or more of software components 68 represent executable software instructions, which may take the form of one or more software applications, software packages, software libraries, hardware drivers, and / or application programming interfaces (APIs). Additionally, any one of software components 68 may output data and / or receive data via I / O interface 34.

[0041] The aspect of memory 32 providing non-volatile storage and / or long-term storage supports local storage of data repository 72. In Figure 2In the example of, the data repository 72 includes a metasurface design 74A, performance metrics 74B, and simulation data 74C. One or more of the software components 68 may call the processor 28 and the memory 32 to access one or more of the data repositories 72 to retrieve data for various purposes, such as comparison, processing, and relay, and / or to view the metasurface design, performance metrics, and / or simulation data. In some examples, the software components 68 may implement read / write capabilities with respect to the data repository 72, such as accessing and using information obtainable from the data repository 72 and / or modifying information currently stored to the data repository 72. In a particular implementation where MDS6 represents a distributed computing system, one or more of the data repositories in the data repository 72 may be located at a remote location from the processor 28, and in these particular implementations, the software components 68 may use the NIC hardware of the I / O interface 34 to access the data repository 72.

[0042] The metasurface design generator application 68A operates as an application for generating a metasurface design using a generator, a model (e.g., a machine learning model), and / or another generation technique (e.g., a genetic algorithm generation technique). As described below, the metasurface design generator application 68A may generate a metasurface design for a metasurface to be used in various applications (e.g., an optical metasurface for an augmented reality film, an under-screen fingerprint reader film, a switchable privacy film, LIDAR, and / or an anti-photography film). The model training application 68B operates as an application for training a machine learning model such as a neural network and / or a generator to generate a metasurface design. In some examples, the model training application 68B may output the trained generator and / or model to the metasurface design generator application 68A. The simulator application 68C operates as an application for simulating a metasurface design to generate performance metrics for a given metasurface design.

[0043] Figure 3Exemplary metasurface 300 in accordance with aspects of the present disclosure is illustrated. As shown, metasurface 300 is included in metasurface device 304. Metasurface 300 may be disposed between superstrate 308 and substrate 312. In some examples, metasurface 300 may be exposed to air on one or more sides, which means that superstrate 308 and / or substrate 312 may be air. In some examples, superstrate 308 and / or substrate 312 may include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, superstrate 308 and / or substrate 312 may be a uniform material having a predetermined thickness. In some examples, superstrate 308 and / or substrate 312 may include multiple layers of materials each having a predetermined thickness. In some examples, superstrate 308 and / or substrate 312 may be the same. Metasurface 300 may have a predetermined thickness and may include two materials arranged in a manner to produce a desired effect (e.g., enhancing the transmission efficiency for a particular wavelength and angle of incidence). Each material included in metasurface 300 may extend throughout the entire thickness of metasurface 300. Although metasurface 300 is a three-dimensional material, the materials may be variably arranged along the x-axis and y-axis of metasurface 300, while the distance the materials extend along the z-axis remains constant. Thus, the arrangement of the materials can be considered a two-dimensional problem, even though the thickness of the materials (and thus the thickness of metasurface 300) is also a factor in the metasurface configuration.

[0044] The physical characteristics of metasurface device 304 may include: the refractive index of the materials included in superstrate 308 and / or substrate 312, the dispersive refractive index of the materials included in metasurface 300, the thickness of metasurface 300, and the pitch of metasurface 300. In some examples, if the desired thickness and / or pitch of metasurface 300 are unknown, the thickness and / or pitch may be adjusted during training. In some examples, the mirror symmetry of the structures included in metasurface 300 may be defined as having symmetry about the x-axis, symmetry about the y-axis, symmetry about the xy plane, or no symmetry. Metasurface designs that utilize symmetry can reduce the computational time of training by up to about fifty percent.

[0045] The optical characteristics of the metasurface device 304 can include the position of the light source relative to the superstrate 308 and / or the substrate 312, optical modes (e.g., reflection, transmission, and / or absorption), polarization (e.g., transverse electric, transverse magnetic, and / or unpolarized), optical order (first order or multi-order), one or more wavelengths, one or more polar angles, one or more azimuthal angles of incidence, and / or desired optical efficiency. The generator of the present disclosure can be trained to generate metasurfaces that meet one or more sets of specifications defining the optical characteristics. In some examples, instead of receiving optical order information as training data, the generator of the present disclosure can be trained with one or more user-specified diffraction angles.

[0046] Figure 4 An exemplary process 400 for training a generator 412 to generate metasurface designs in accordance with aspects of the present disclosure is illustrated. Process 400 can include providing a noise input 404 to the generator 412. The noise input 404 can be randomized data. The noise input 404 can be predetermined or selected by the user prior to training the generator 412. In some examples, process 400 can include receiving from the user a selection of a sample distribution (e.g., uniform and / or Gaussian) of the noise input 404 and a random seed for the noise input 404. In some examples, the generator training application 68B can use randomized noise to train the generator 412, and thus does not require training data (e.g., exemplary metasurface design information), providing an advantage over other methods that may require large amounts of training data to correctly train a generator to generate metasurface designs. Process 400 can utilize randomized noise and feedback from simulator techniques to train the generator 412 via adjoint method techniques.

[0047] The generator 412 can include a generation network. In some examples, the generation network can be a neural network, such as a convolutional neural network (CNN). In some examples, process 400 can include providing physical parameter values 408 to the generator 412. In some examples, the physical parameter values 408 can be referred to as conditional parameter values. The physical parameter values 408 can include one or more values and / or ranges that the generated metasurface design can be configured to conform to (e.g., specifications for a predetermined application). In some examples, the physical parameter values 408 can include physical parameter values such as thickness values (e.g., z-axis length), width pitch values (e.g., x-axis length), and / or height pitch values (e.g., y-axis length). In some examples, the physical parameters can include ranges of values for one or more of the x-axis pitch, y-axis pitch, or z-axis thickness.

[0048] Using the noise input 404 and / or the physical parameter values 408, the generator 412 can generate a metasurface design 424. In some examples, the generator 412 can generate multiple instances of the metasurface design 424. The metasurface design 424 can include manufacturing data that allows for the fabrication of a metasurface based on the metasurface design 424. In other words, the metasurface design 424 can be considered a blueprint for the fabricated metasurface. In some examples, the metasurface design 424 can include an x-axis pitch value, a y-axis pitch value, a z-axis thickness value, and a mapping of one or more features. The mapping of one or more features can include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature can be a continuous portion of a given material. For example, a metasurface including two materials can have ten features, where four features are formed of a first material and six features are formed of a second material. In some examples, the metasurface design 424 can include a grid surface representation of the metasurface.

[0049] The process 400 can include providing one or more instances of the metasurface design 424 generated by the generator 412 to the simulator 420. The simulator 420 can simulate the corresponding performance of each instance of the metasurface design 424. The simulator 420 can generate one or more performance metric values, such as reflection values, transmission values, or absorption values, for one or more wavelengths, angles, and / or orders. In some examples, the simulator 420 can include a rigorous coupled-wave analysis (RCWA) simulator, such as RETICOLO or Stanford Stratified Structure Solver (S4), and / or a finite-difference time-domain (FDTD) simulator, such as Lumerical or Meep. In some examples, the generator 412 can provide the simulated Fourier order count as an input hyperparameter to the simulator 420. In some examples, the simulator 420 can simulate desired optical properties (e.g., polarization and / or mode).

[0050] Process 400 may include calculating one or more loss values 416 based on performance metric values and one or more user-defined metasurface specifications. Process 400 may include updating a generator 428 based on the one or more calculated loss values. In some examples, process 400 may include calculating loss values based on the adjoint method to obtain gradients for a given metasurface design 424. Process 400 may also include calculating base loss values based on the gradients using base loss functions such as Gaussian, sigmoid, or soft plus techniques. In some examples, process 400 may weight wavelengths, angles, and / or target efficiencies included in each metasurface specification 416 according to a triangular, Gaussian, or uniform distribution, where the weights are applied to the final sum of the loss values along with any λ coefficients. In some examples, process 400 may include using one or more loss functions to calculate loss function values, each loss function including a λ coefficient, each λ coefficient associated with a starting value and an ending value at a specified step. In some examples, process 400 may include using one or more loss functions to calculate loss function values, each loss function including a λ coefficient and a Σ coefficient, each of the λ coefficient and the Σ coefficient associated with a starting value and an ending value at a specified step.

[0051] In some examples, process 400 may include other loss functions. In some examples, process 400 may include calculating a cosine penalty. The cosine penalty may be included as a loss value to increase variability in the generated metasurface design. In some examples, process 400 may include calculating a binary loss value, which may assist in how a given metasurface is binaryized into two different materials over multiple steps. In some examples, process 400 may include calculating additional loss function values to suppress optical orders not of interest in the specification.

[0052] Now referring to Figure 4 and Figure 5 , an exemplary generator network 500 in accordance with aspects of the present disclosure is shown. In some examples, generator network 500 may be included in Figure 4In the generator 412. In some examples, the generation network 500 can be a neural network such as a CNN. The generation network 500 can include multiple convolutional layers 504A - G. The generation network 500 can include multiple Leaky ReLU activations. The generation network 500 can also include periodic padding on each of the convolutional layers 504A - G. The periodic padding can build periodicity into the generation network 500. The generation network 500 can generate a metasurface that serves as a tile in one or more periodic surfaces, so building periodicity into the generation network 500 can improve the performance in the generated metasurface. In some examples, the architecture of the generation network 500 can include various numbers of layers, filter sizes, and / or magnifications, and the generator training application 68B can use various network hyperparameters (such as learning rate, batch size, and / or number of steps) to train the generation network 500.

[0053] Reference Figure 4 and Figure 6 , shows an exemplary maximally pixelated image 600 in accordance with aspects of the present disclosure. As described above, process 400 can include calculating a pixelation loss value and / or a solid loss value. To facilitate the manufacturability of the metasurface, the metasurface features can include dimensions and / or gap sizes. In testing, it was found that the generator (e.g., CNN) tends to provide better data accuracy at pixel resolutions that represent feature sizes that are too small to be reliably replicated in mass production. Thus, the generator training application 68B can introduce pixelation loss and / or solid loss to train the generation network 500 to generate more manufacturable metasurface designs.

[0054] As Figure 6 shown, a highly pixelated metasurface appears in a checkerboard format and can be regarded as "noise". The generator training application 68B can introduce pixelation loss to penalize designs that have a large sum of absolute differences between adjacent pixels in the metasurface design. The generator training application 68B can calculate the pixelation loss based on the sum of absolute differences between adjacent pixels in the metasurface design.

[0055] By minimizing the sum of absolute differences between adjacent pixels, the noise in the image can be reduced, thereby reducing the checkerboard appearance and improving the manufacturability of the device by having larger and more separated features. Thus, the pixelation loss is configured to penalize metasurface designs that include a large sum of absolute differences between adjacent pixels.

[0056] Testing shows that the generator may generate metasurface designs where some or all of the generated surfaces are "solid", where the device consists of a single uniform material layer rather than a combination of low - refractive - index and high - refractive - index materials. To train the generator not to produce these types of surfaces, the generator training application 68B can calculate the solid loss.

[0057] As Figure 6 shown, the refractive index of each pixel included in the metasurface design is visually represented as black or white, which is a visual proxy for the effective refractive index, and the range is limited to [-1, 1]. The generator training application 68B can calculate the solid loss as the square of the sum of the pixel values included in the metasurface design divided by the product of the dimensions of the metasurface design, as shown in Equation 1 below.

[0058]

[0059] In Equation 1, the size of the surface batch is (batch, n, m), where batch is the number of metasurface designs, and n and m are the dimensions of the surface matrix, and their values are limited to [-1, 1].

[0060] Figure 7 Illustrated is a comparison of a first metasurface generated using a generator that does not consider pixelization loss and a second metasurface generated using a generator trained using pixelization loss according to aspects of the present disclosure. As Figure 7 shown, there are distinguishable differences between the metasurfaces generated by the generator with and without considering pixelization loss. The first metasurface includes many small checkerboard features that do not disappear during training and are difficult (if not impossible) to manufacture on a large scale for roll-to-roll applications. In the second metasurface, there are significantly larger features and gaps, and there is no checkerboard pattern. In testing, it was noted that increasing the effect of pixelization loss beyond a coefficient of 1 may result in larger gaps between features and more unpatterned space. Therefore, too large a coefficient of pixelization loss may result in a completely solid device.

[0061] Figure 8 Illustrated is a comparison of a first metasurface generated using a generator that does not consider solid loss and a second metasurface generated using a generator trained using solid loss according to aspects of the present disclosure. As Figure 8 shown, including solid loss when training the generator has a significant impact on the generated surface. The network no longer generates a uniform surface. The first metasurface represents a training process that has entered a degenerate state of generating mainly solid devices. Solid loss provides a metric that measures the prevalence of solid devices in a batch and aids in training the generator to avoid this undesirable state.

[0062] Figure 9Illustrates an exemplary process 900 for adjusting a generator to generate a metasurface having one or more unknown physical parameter values. A user may not know the specific physical parameter values that the metasurface should have, and process 900 can help determine one or more potential physical parameter values that the metasurface can have to meet the requirements of a particular metasurface device. In some examples, the generator can be adjusted based on one or more user-provided numerical ranges (e.g., a range of thickness values), for example, by configuring the generator to sample one or more numerical ranges during training.

[0063] One method of training the generator is the adjoint method. However, the adjoint method is limited to computing gradients with respect to specific aspects of the metasurface design. Specifically, the adjoint method is limited to computing the gradients of the materials at each location of the metasurface design. Variables of interest that the adjoint method cannot consider include the overall physical size of the metasurface device. Process 900 can adjust the generator while incorporating gradients associated with the metasurface, while sampling the range of physical sizes of the metasurface design.

[0064] In some examples, process 900 can include providing a noise input 904 and sampled physical parameter values 908 to a generator 912. In some examples, the physical parameter values 908 can include pitch values and / or thickness values. In some implementations, the noise input 904 and the generator 912 can be substantially the same as the noise input 404 and the generator 412 in Figure 4 respectively. Process 900 can include receiving a metasurface design 924 generated by the generator 912. In some examples, the metasurface design 924 can be substantially the same as the metasurface design 424 in Figure 4 respectively.

[0065] Process 900 can include providing the physical parameter values 908 and the metasurface design 924 to a simulator 920. In some examples, the simulator 920 can be substantially the same as the simulator 420 in Figure 4 respectively. Process 900 can include receiving a device gradient 916 from the simulator 920. The device gradient 916 can include gradients associated with one or more pitch values and / or thickness values. Specifically, the device gradient 916 can be associated with the physical parameter values 908 because the device gradient 916 reflects the overall performance of a metasurface device having certain refractive index values and physical parameter values 908, even if the physical parameter values 908 are non-differentiable. Process 900 can include providing the device gradient 916 and the metasurface design 924 to a loss function 928. In some examples, the loss function can include one or more of the above-described loss functions. The loss function 928 can compute one or more loss values 932, and the generator training application 68B can update the generator 912 based on the loss values 932.

[0066] By providing parameters such as thickness and pitch values to the simulator, the generator can be adjusted according to those thickness and pitch values. From one simulation to the next, as the simulation parameters change, the output of the generator will be evaluated in different ways. In this case, the simulation parameters include two types. Specifically, these two types are (i) simulation parameters that describe the desired behavior of the device (e.g., the device should be efficient at multiple wavelengths or angles), as opposed to (ii) parameters that describe the unknown quality of the metasurface device and are also non-differentiable (e.g., having a specific pitch and thickness). The parameters that describe the unknown quality of the metasurface device can be adjusted by sampling the parameters during training, and then the generator training application 68B can present a list of selectable options to the user, which includes appropriate devices suitable for a specific application. In some examples, each selectable option can include one or more physical parameter values and / or performance parameter values.

[0067] Figure 10A Exemplary diagrams illustrate incident light at an angle θ according to aspects of the present disclosure and corresponding reflections using an optical metasurface. Figure 10B Exemplary diagrams illustrate incident light at an angle θ according to aspects of the present disclosure and corresponding transmissions using an optical metasurface.

[0068] Now refer to Figure 4 and Figure 10A and Figure 10B , a technique for integrating performance specifications of multiple orders into the metasurface specification 416 is described. More specifically, Figure 10A and Figure 10B respectively illustrate multiple orders of refracted light and transmitted light. The following formula 2 can be used to specify the performance of all non-zero orders.

[0069] Order =! [0] (2)

[0070] For example, the user can select to maximize diffuse reflection by selecting the zero order and indicating the negation of the selection as specified in formula 2. The reflected light of non-zero orders can be referred to as diffused light. The following formula 3 can specify the performance of all non-zero orders except for any explicitly stated orders.

[0071] Order =! [0,x] (3)

[0072] In some examples, the generator training application 68B can provide the user with options to select x in Equation 3. In Equation 3, x can include one or more non-zero orders for which the performance is penalized for a specified performance metric. For example, the user may wish to specify all orders except the second order to maximize diffuse reflection while penalizing diffuse reflection in the second order. By defining the selection of orders in this way, the user does not need to specify each non-zero order (which may be hundreds or thousands) before performing the simulation. In some examples, the simulation can be an RCWA simulation. In some examples, the diffraction efficiencies generated using Equation 2 and / or Equation 3 can be aggregated in a loss function that is configured to maximize the sum of the diffraction efficiencies across the specified orders. In some examples, the loss function can be configured to minimize the diffraction efficiency of the specified orders based on the source angle or wavelength. For example, the user may wish to maximize the reflection of all non-zero orders. In some examples, the user can choose to maximize the transmission of multiple non-zero orders. The user can use Figure 4 Equations 2 and / or 3 in the metasurface specification 416 in

[0073] Figure 11 Illustrates an exemplary process 1100 for training a generator 1108 using a machine learning-based physical property estimator 1120 in accordance with aspects of the present disclosure. In some examples, the generator 1108 can be Figure 4 the generator 412 in Figure 4 In some examples, process 1100 can include providing a noise input 1104 to the generator 1108, receiving a metasurface design 1112 from the generator 1108, and providing the metasurface design 1112 to a physics-based simulator 1116 and a machine learning-based physical property estimator 1120. In some examples, the physics-based simulator 1116 can be

[0074] One advantage of the machine learning-based simulator 1120 and the estimated property values 1128 is that the generator 1108 can be trained without relying on the property gradients of the design parameters obtained from physical simulations. Process 1100 includes two neural networks, one as the generator 1108 and the other as the physics-based simulator 1116. Additionally, process 1100 can include the generator training application 68B to train both the generator 1108 and the ML-based simulator 1120 without pre-existing data for training, as the generator 1108 and the ML-based simulator 1120 are trained on the metasurface designs 1112 generated by the generator 1108 and evaluated by the physics-based simulator 1116. Thus, the generator 1108 can be trained to generate metasurface designs without gradient-based methods (e.g., adjoint techniques). In some examples, Figure 4 the simulator 420 in Figure 4 can include both the physics-based simulator 1116 and the machine learning-based simulator 1120, and the simulated property values 1124 and the estimated property values can be used to update

[0075] Reference Figure 4 、 Figure 9 and Figure 11 discuss techniques for generating metasurface designs with predetermined absorption. When using a physics-based simulator (e.g., Figure 4 the simulator 420 in Figure 9 the simulator 920 in Figure 11 and / or the physics-based simulator 1116 in

[0076] to train the generator, the simulator can generate a gradient function through adjoint techniques. Adjoint techniques can include two complementary simulations of light in the metasurface design generated by the generator. First, the simulator simulates light propagating in the forward direction with a specified direction and polarization and leaving the metasurface design. Second, the simulator simulates light propagating backward with a direction and phase determined by the exit light properties of the light propagating in the forward direction.

[0077] For some types of metasurface devices, absorption may be a property that is desired to be maximized or minimized. Minimizing absorption may be useful for metasurfaces that are designed to interact only with specific wavelengths for augmented reality displays or that are minimally visible in their environment when interacting with light outside the visible spectrum. Maximizing absorption is useful for filters and shields for specific wavelengths, directions, or polarizations.

[0078] To generate a metasurface design with a target absorption efficiency x - A of, the target efficiency x - A can be replaced with specifications for transmission and reflection, each to all diffraction orders, which have inverted targets x T and x R . Then, the training process can generate gradients that are effectively absorption gradients, but the training generator is implemented via the adjoint method.

[0079] T + R + A = 1 (4)

[0080] In Equation 4 above, A, T, and R represent the efficiency of transmission, reflection, and absorption, respectively, of the metasurface to all diffraction orders of incident light with any specified property or range of properties. In other words, 100% of the light is transmitted, reflected, or absorbed.

[0081] The training process can update the generator based on whether the target absorption has been met. If the goal is to maximize A and A < x A , then the training process continues to search for a metasurface design that increases A, while considering other unmet specifications. If A > x A , then the update of the generator is driven by other specifications whose goals have not been met, rather than maximizing A. In some examples, the inverted targets x T and x R are generated, and the user can set the goal so that the optimization of A is "turned off" when it is possible for T and R to meet the goal or to ensure that T and R meet the goal. To ensure that T and R meet the goal, the goals of maximizing and minimizing must be separately processed for the inverted targets in Equations 5 through 10 and 11 through 15, respectively:

[0082] Minimization of absorption

[0083] A < x A (5)

[0084] A = 1 - T - R (6)

[0085] T + R > 1 - x A (7)

[0086] The losses for T and R are processed independently of each other, and x T is set such that the condition A < x AIs true if and only if T > x T , so it can be assumed that in the limiting case of the minimum contribution from R, R = 0.

[0087] T > 1 - x A (8)

[0088] x T = 1 - x A (9)

[0089] Derive x by the same argument R ,

[0090] x R = 1 – x A . (10)

[0091] Maximization of absorption

[0092] A > x A (11)

[0093] A = 1 - T - R (12)

[0094] T + R < 1 - x A (13)

[0095] x T is set such that the condition A > x A is true if and only if T < x T , so it can be assumed that in the limiting case of the maximum contribution from R, R = 1.

[0096] T + 1 < 1 - x A (14)

[0097] The condition is not satisfied; there is no value of T, independent of R, for which A > x can be guaranteed A . Thus, the target is set to its physical lower limit.

[0098] x T = 0 = x R (15)

[0099] Thus, the training process can generate one or more loss values respectively for minimizing and / or maximizing the absorption of one or more wavelengths, angles, and / or orders using equations 5 to 10 and 11 to 15 respectively.

[0100] Now refer to Figure 12A 、 Figure 12B and Figure 12C , Figure 12A which illustrate exemplary metasurface designs with discontinuous features according to aspects of the present disclosure. Figure 12B Illustrates Figure 12AStitching of copies of metasurface designs. Figure 12C Exemplary metasurface designs are illustrated that include Figure 12A discontinuous features according to aspects of the present disclosure and aggregate them to form continuous features. In some examples, a generator (e.g., Figure 4 the generator 412 in ) can produce designs with discontinuous features. Without considering the discontinuous features, the generator may produce copies of the same metasurface design, where the only difference between the designs is the periodicity of the features, thus suppressing metasurface diversity. By shifting the discontinuous features to form continuous features, the periodicity of the metasurface design can be considered.

[0101] In some examples, a process (e.g., Figure 4 the process 400 in ) can include aggregating discontinuous features to form the largest possible feature. The largest possible feature can be located at the center of the metasurface design. To shift the largest feature to the center, the process can include generating four copies of the surface with discontinuous features (e.g., Figure 12A the metasurface design in ) and generating a stitching of these four metasurface copies (e.g., Figure 12B the stitching in ). Thus, the process can include stitching multiple copies of the surface with discontinuous features.

[0102] The process can include detecting the largest feature in the stitching using a detection algorithm (e.g., OpenCV). The contour detection algorithm can return the coordinates of the bounding box containing the largest feature. The process can include cropping the region of interest (ROI) based on the bounding box coordinates to form the largest continuous feature at the center of the metasurface design (e.g., Figure 12C the metasurface design in ).

[0103] In some examples, the process can include detecting similar metasurface designs in a batch of metasurface designs after shifting and centering the largest feature at the center using an image similarity module. The image similarity module can identify pairs of metasurface designs that are similar by translation. After detection, all relatively similar images are shifted to have the same representation, where the largest feature is at the center. It is desirable to train the generator to generate diverse shapes rather than the same shape with different periodicities. For each input metasurface design, the image similarity module can detect the number of feature pixels in each row. If any pair of metasurface designs is associated with the same list of values, the image similarity module can label these metasurface designs as "similar", and the process can output the metasurface design with a higher concentration of feature pixels at the center of the metasurface design.

[0104] Figure 13Illustrates an exemplary process 1300 for the metasurface design shifting function 1304 in accordance with aspects of the present disclosure. Process 1300 may include providing a first metasurface design 1308 to the metasurface design shifting function 1304. The metasurface design shifting function 1304 may shift any discontinuous features in the first metasurface design 1308 to create at least one larger feature. In some examples, the metasurface design shifting function 1304 may shift multiple discontinuous features in the first metasurface design 1308 to create a single largest feature. In some examples, the metasurface design shifting function 1304 may center the largest feature in the first metasurface design 1308.

[0105] The metasurface design shifting function 1304 may output a second metasurface design 1312. The second metasurface design 1312 may include the shifted features included in the first metasurface design 1308. As shown, the first metasurface design 1308 and the second metasurface design 1312 are the same because the first metasurface design 1308 already includes a single centered large feature.

[0106] Conversely, process 1300 may include providing a third metasurface design 1316 to the metasurface design shifting function 1304. As shown, the third metasurface design 1316 may include multiple discontinuous features. The metasurface design shifting function 1304 may output a fourth metasurface design 1320. The fourth metasurface design 1320 may include the shifted features included in the third metasurface design 1316. As shown, the fourth metasurface design 1320 includes a continuous feature that includes each of the discontinuous features in the third metasurface design 1316.

[0107] Figure 14 Illustrates an exemplary process 1400 for training a metasurface design generator in accordance with aspects of the present disclosure. Specifically, process 1400 may train a generator to generate metasurface designs that can be fabricated for various metasurface devices. In some examples, the metasurface design may include a metasurface (e.g., Figure 3 the metasurface 300 in). In some examples, the metasurface design may include a metasurface device and / or a portion of a metasurface device (e.g., Figure 3 the metasurface device 304 in) and / or be associated with a metasurface device and / or a portion of a metasurface device. In some examples, the metasurface design may include a superstrate (e.g., Figure 3 the superstrate 308 in) and a substrate (e.g., Figure 3the substrate 312). In some examples, the metasurface device and / or portions of the metasurface device can be pre-determined. In some examples, the metasurface can be exposed to air on one or more sides, which means that the superstrate and / or substrate can be air. In some examples, the superstrate and / or substrate can include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or substrate can be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or substrate can include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or substrate can be the same. The metasurface can have a pre-determined thickness and can contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for a specific wavelength and angle of incidence). In some examples, the generator can be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, process 1400 can be in Figure 2 the generator training application 68B and / or the simulator application 68C in

[0108] In some examples, process 1400 can be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in Figure 4 ), and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions. In some examples, process 1400 can be executed to train a generator (e.g., Figure 5 the generator 412 in

[0109] At 1404, process 1400 can receive randomization data. In some examples, the randomization data can be randomization noise. In some examples, the randomization data can be a string of random values formed as a two-dimensional input matrix. In some examples, the randomization data can be Figure 4 the noise input 404 in

[0110] At 1408, process 1400 can receive one or more physical parameter values and / or performance parameter values. In some examples, the one or more physical parameter values can be Figure 4The physical parameter value 408 in. In some examples, the one or more physical parameter values may be referred to as the one or more physical parameter values. The one or more physical parameter values may include one or more values and / or ranges that a generated metasurface design may need to follow (e.g., the specifications of a predetermined application). In some examples, the one or more physical parameter values may include a thickness value (e.g., the z-axis length), a width spacing value (e.g., the x-axis length), and / or a height spacing value (e.g., the y-axis length). In some examples, the one or more physical parameter values may include a range of values for each of the x-axis spacing, y-axis spacing, and / or thickness.

[0111] In some examples, the performance parameter values may include Figure 4 One or more of the user-defined metasurface specifications 416 in. The performance parameter values may be selected (e.g., by the user) to train the generator to produce a metasurface design with a desired performance quality. In some examples, the performance parameter values may include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the above formulas 2 and / or 3 may be used to generate the performance parameter values. Then, process 1400 may proceed to 1412.

[0112] At 1412, process 1400 may provide the randomized data to the generator. Then, process 1400 may proceed to 1416.

[0113] At 1416, process 1400 may provide the physical parameter values to the generator. Then, process 1400 may proceed to 1420.

[0114] At 1420, process 1400 may receive a metasurface design from the generator. In some examples, the metasurface design may be Figure 4 The metasurface design 424 in. The metasurface design may include manufacturing data that allows the metasurface to be manufactured based on the metasurface design. Thus, the metasurface design may be used as a blueprint for the metasurface. In some examples, the metasurface design may include an x-axis spacing value, a y-axis spacing value, a thickness value, material information, and a mapping of one or more features. The mapping of one or more features may include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature may be a continuous portion of a given material. For example, a metasurface including two materials may have ten features, where four features are formed by the first material and six features are formed by the second material. In some examples, the metasurface design may include a grid surface representation of the metasurface.

[0115] In some examples, process 1400 may shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using Figure 13the metasurface design shifting module 1304). In some examples, process 1400 may perform Figure 13 at least a portion of process 1300 in

[0116] In 1424, process 1400 may determine at least one loss value based on the metasurface design. In some examples, process 1400 may determine a pixelation loss value and / or a solid loss value based on the metasurface design. Process 1400 may calculate the pixelation loss based on the sum of the absolute differences between adjacent pixels in the metasurface design. In some examples, if the metasurface design has a large sum of absolute differences between adjacent pixels, the pixelation loss value may penalize the metasurface design.

[0117] Process 1400 may calculate the solid loss value based on the square of the sum of the pixel values included in the metasurface design divided by the product of the size of the metasurface design. In some examples, process 1400 may calculate the solid loss value based on Equation 1 above. In some examples, process 1400 may determine a manufacturability loss value and / or a cosine loss value. Process 1400 may determine the manufacturability loss value to train the generator to generate a metasurface including features that follow predetermined size and gap size values. In some examples, the at least one loss value may include a pixelation loss value, a solid loss value, a manufacturability loss value, and / or a cosine loss value. Then, process 1400 may proceed to 1428.

[0118] In 1428, process 1400 provides the metasurface design to the simulator. In some examples, the simulator may include Figure 4 simulator 420 in Figure 9 simulator 920 in Figure 11 the physics-based simulator 1116 in Figure 11 and / or the machine learning-based simulator 1120 in

[0119] In some examples, the simulator can generate one or more performance metric values, such as reflection values, transmission values, or absorption values at one or more wavelengths, angles, and / or orders. In some examples, the simulator can include an RCWA simulator such as RETICOLO or S4, and / or an FDTD simulator such as Lumerical or Meep. In some examples, the simulator can generate a device gradient based on a metasurface design, a pitch value, and / or a thickness value. The device gradient can include gradients associated with one or more pitch values and / or thickness values. Specifically, the device gradient can be associated with physical parameter values such as one or more pitch values and / or thickness values, because the device gradient reflects the overall performance of a metasurface device having certain refractive index values and physical parameter values, even if the physical parameter values are non-differentiable.

[0120] In some examples, process 1400 can provide the metasurface design to a physics-based simulator (e.g., Figure 11 physics-based simulator 1116 in Figure 11 ), and a machine learning-based simulator (e.g., Figure 4 machine learning-based simulator 1120 in

[0121] ). In some examples, the physics-based simulator can be the simulator 420 in

[0122] Figure 4 The physics-based simulator can be configured to generate simulated attribute values for a predetermined attribute such as efficiency. The machine learning-based physical attribute estimator can be a neural network that can be trained to generate estimated attribute values for the predetermined attribute. In some examples, the machine learning-based physical attribute estimator can be trained by process 1400. In some examples, the machine learning-based physical attribute estimator can generate estimated reflection values, transmission values, or absorption values at one or more wavelengths, angles, and / or orders. The wavelength and / or angle can be associated with the source light, and the order can be associated with the output light. Then, process 1400 can proceed to 1432.

[0121] At 1432, process 1400 can receive one or more performance values from the simulator. In some examples, the one or more performance values can include reflection values, transmission values, and / or absorption values at one or more wavelengths, angles, and / or orders. In some examples, the one or more performance values can include estimated reflection values, transmission values, and / or absorption values at one or more wavelengths, angles, and / or orders generated by the machine learning-based physical attribute estimator. Then, process 1400 can proceed to 1436.

[0122] At 1436, process 1400 may determine a final loss value based on the at least one loss value and / or performance value. In some examples, process 1400 may determine the final loss value based on a pixelation loss value, a solid loss value, a manufacturability loss value, a cosine loss value, and / or a performance value. In some examples, process 1400 may determine the final loss value based on a pixelation loss value and a performance value. In some examples, process 1400 may determine the final loss value based on a solid loss value and a performance value. In some examples, process 1400 may determine the final loss value based on a pixelation loss value, a solid loss value, and a performance value. In some examples, process 1400 may determine the final loss value based on a performance value and a performance parameter value. In some examples, the final loss value may be calculated based on at least one of the above formulas 1 and 4 to 15.

[0123] In some examples, process 1400 may calculate multiple loss values based on an adjoint method to obtain the gradient of the metasurface design as described above. Then, process 1400 may calculate a base loss value based on the gradient using a base loss function such as Gaussian, sigmoid, or softplus techniques. In some examples, process 1400 may generate weights for wavelengths, angles, and / or target efficiencies included in the performance parameter value according to a triangular, Gaussian, or uniform distribution, and apply the weights and any λ coefficients to generate a final sum of loss values. Then, the final sum may be used as the final loss value. In some examples, process 1400 may further determine the final loss value based on a loss manufacturability loss value and / or a cosine loss value. Then, process 1400 may proceed to 1440.

[0124] At 1440, process 1400 may update the generator based on the final loss value. In some examples, if a condition has not been met (e.g., a predetermined number of training cycles have not been performed, a predetermined performance value has not been met, etc.), then process 1400 may proceed to 1412 to continue training the generator. Otherwise, process 1400 may proceed to 1444.

[0125] At 1444, process 1400 may output the generator to at least one of a user interface, an external device, or at least one non-transitory computer-readable storage medium. Then, process 1400 may end.

[0126] Figure 15 Exemplary process 1500 for generating a metasurface design in accordance with aspects of the present disclosure is illustrated. Specifically, process 1500 may generate a metasurface design that can be fabricated for various metasurface devices. In some examples, the metasurface design may include a metasurface (e.g., Figure 3the metasurface 300 therein). In some examples, the metasurface design may include a metasurface device and / or a portion of the metasurface device (e.g., Figure 3 the metasurface device 304 therein) and / or be associated with the metasurface device and / or a portion of the metasurface device. In some examples, the metasurface design may include a superstrate (e.g., Figure 3 the superstrate 308 therein) and a substrate (e.g., Figure 3 the substrate 312 therein). In some examples, the metasurface device and / or a portion of the metasurface device may be pre-determined. In some examples, the metasurface may be exposed to air on one or more sides, which means that the superstrate and / or the substrate may be air. In some examples, the superstrate and / or the substrate may include one or more solid materials, such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or the substrate may be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or the substrate may include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or the substrate may be the same. The metasurface may have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for a specific wavelength and angle of incidence). In some examples, a generator may be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, process 1500 may be implemented in Figure 2 the metasurface design generator application 68A, the generator training application 68B, and / or the simulator application 68C therein.

[0127] In some examples, process 1500 may be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 therein) and executed by one or more processors (e.g., the processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions.

[0128] At 1504, process 1500 may receive one or more metasurface application parameter values. In some examples, the one or more metasurface application parameter values may be selected by a user. In some examples, the one or more metasurface application parameter values may include one or more physical parameter values and / or performance parameter values. In some examples, the one or more physical parameter values may be Figure 4The physical parameter values 408 in. In some examples, the one or more physical parameter values may be referred to as the one or more physical parameter values. The one or more physical parameter values may include one or more values and / or ranges that the generated metasurface design may need to follow (e.g., specifications for a predetermined application). In some examples, the one or more physical parameter values may include physical parameter values such as a thickness value (e.g., z-axis length), a width spacing value (e.g., x-axis length), and / or a height spacing value (e.g., y-axis length). In some examples, the one or more physical parameter values may include a range of values for each of the x-axis spacing, y-axis spacing, and thickness.

[0129] In some examples, the performance parameter values may include Figure 4 One or more of the user-defined metasurface specifications 416 in. The performance parameter values may be selected (e.g., by the user) to train the generator to produce a metasurface design with a desired performance quality. In some examples, the performance parameter values may include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the above formula 2 and / or formula 3 may be used to generate the performance parameter values. Then, process 1500 may proceed to 1508.

[0130] At 1508, process 1500 may select a generator based on the one or more metasurface application parameter values. In some examples, process 1500 may select a trained generator that satisfies each of the one or more metasurface application parameter values. In some examples, process 1500 may select a generator from a database of pre-trained generators. In some examples, process 1500 may train a generator to generate a metasurface design that satisfies each of the one or more metasurface application parameter values. In some examples, process 1500 may perform Figure 14 At least a portion of process 1400 in to train the generator using the one or more metasurface application parameter values. Once the generator has been selected and / or trained, process 1500 may proceed to 1512.

[0131] At 1512, process 1500 may provide randomized data to the generator. In some examples, process 1500 may receive the randomized data from a user and / or a database. In some examples, the randomized data may be randomized noise. In some examples, the randomized data may be a string of random values formed as a two-dimensional input matrix. In some examples, the randomized data may be Figure 4 The noise input 404 in. Then, process 1500 may proceed to 1516.

[0132] At 1516, process 1500 may receive a metasurface design from the generator. In some examples, the metasurface design may beFigure 4 The metasurface design 424 in . The metasurface design may include manufacturing data that allows for the fabrication of a metasurface based on the metasurface design. Thus, the metasurface design can be used as a blueprint for the metasurface. In some examples, the metasurface design may include an x-axis pitch value, a y-axis pitch value, a thickness value, material information, and a mapping of one or more features. The mapping of one or more features may include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature may be a continuous portion of a given material. For example, a metasurface including two materials may have ten features, where four features are formed of a first material and six features are formed of a second material. In some examples, the metasurface design may include a grid surface representation of the metasurface.

[0133] In some examples, process 1500 may shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using Figure 13 the metasurface design shifting module 1304 in . In some examples, process 1500 may perform Figure 13 at least a portion of process 1300 in . In some examples, the generator may include a metasurface design shifting module (e.g., metasurface design shifting module 1304) and may automatically shift features before outputting the metasurface design. Then, process 1500 may proceed to 1520.

[0134] At 1520, process 1500 may output the metasurface design to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium. Then, process 1500 may end.

[0135] Figure 16 Illustrates exemplary manufacturability constraints overlaid on metasurface design 1600 in accordance with aspects of the present disclosure. The manufacturability constraints may be determined based on the capabilities of the manufacturing process. Metasurface design 1600 may include a first feature 1604 and a second feature 1608. In some examples, a first manufacturability constraint 1612 and a second manufacturability constraint 1616. In some examples, the first manufacturability constraint 1612 may be a circle (e.g., a 20 mm circle) that must fit within all regions of the metasurface design. In some examples, the second manufacturability constraint 1616 may be a circle (e.g., a 40 mm circle) that must be contained somewhere within each continuous metasurface feature.

[0136] With broad reference to Figures 16 to 24 , a method for generating a manufacturable metasurface device is presented. One way to generate a manufacturable metasurface design is to incorporate a loss that penalizes unmanufacturable surfaces generated during training. In this way, the generator is encouraged to generate surfaces that meet certain manufacturability requirements, such as feature size and / or gap size.

[0137] In testing, it has been found that certain loss functions are effective in changing the characteristics of the generated surface, which is represented as a 2D image. An example is total variation, which is the sum of the absolute differences of each pixel from its adjacent pixels below and to the right. Minimizing the total variation has the effect of penalizing edges, which in turn may prevent small features or features with hard edges. Since other loss terms and architectural elements encourage binary values, the total variation loss may prevent small features that are difficult to fabricate.

[0138] One aspect of the above loss function-based techniques is that each loss function needs to be differentiable. Many measurements of metasurface designs to determine whether they are manufacturable can be directly implemented using traditional image processing techniques, but it is difficult to implement them as differentiable losses. An example is measuring the area of each connected component in a binary surface. Although ideally, connected components with small areas should be penalized, implementing such a penalty as a differentiable loss with a meaningful gradient is a potential challenge.

[0139] Another way to encourage manufacturability is to add a discriminator network to form a generative adversarial network (GAN), as Figure 17 shown, which retains the existing generative network and surface representation. With a GAN, a manufacturable surface can be used as the ground truth for the manufacturability quality in the generated metasurface design. In addition to the adjoint-based loss, the discriminator network and adversarial loss can penalize the generated surface that is not similar to the manufacturable ground truth. One advantage of using a GAN is that the process of sampling manufacturable metasurface designs does not need to be differentiable and thus can be parameterized for various applications.

[0140] Figure 17 Illustrated is an exemplary process 1700 for training a generative adversarial network (GAN) to generate metasurface designs in accordance with aspects of the present disclosure. In some examples, process 1700 may include providing a noise input 1704 to a generator 1708. The generator 1708 may be trained to output a metasurface design 1712. The noise input 1704 may be Figure 9 the noise input 904 in Figure 9 The generator 1708 may be Figure 9 the generator 912 in

[0141] The metasurface design can be provided to the discriminator 1720 along with the metasurface designs included in the metasurface design dataset 1716. The discriminator 1720 can be a machine learning model such as a neural network. In some examples, the discriminator 1720 can be the same model as the generator 1708. The discriminator 1720 can be configured to guess whether the metasurface design 1712 is manufacturable based on the metasurface design dataset 1716. The discriminator 1720 can output an adversarial loss value 1724 based on the manufacturability of the metasurface design 1712. The metasurface design 1712 can be provided to the simulator 1728. The simulator 1728 can be the Figure 9 simulator 920 in. The simulator 1728 can generate an efficiency loss value 1732 based on one or more of the performance parameter values as described above. The process 1700 can then update the generator 1708 and / or the discriminator 1720 based on the adversarial loss value 1724 and / or the efficiency loss value 1732. In this way, the process 1700 can train the generator 1708 to generate manufacturable metasurface designs.

[0142] Figure 18 Illustrates a process 1800 for training a GAN according to aspects of the present disclosure. Specifically, the process 1800 can train a generator to use a discriminator to generate manufacturable metasurface designs during training. In some examples, the metasurface design can include a metasurface (e.g., Figure 3 the metasurface 300 in). In some examples, the metasurface design can include a metasurface device and / or a portion of a metasurface device (e.g., Figure 3 the metasurface device 304 in) and / or be associated with the metasurface device and / or the portion of the metasurface device. In some examples, the metasurface design can include a superstrate (e.g., Figure 3 the superstrate 308 in) and a substrate (e.g., Figure 3in the substrate 312). In some examples, the metasurface device and / or portions of the metasurface device may be pre-determined. In some examples, the metasurface may be exposed to air on one or more sides, which means that the superstrate and / or substrate may be air. In some examples, the superstrate and / or substrate may include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or substrate may be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or substrate may include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or substrate may be the same. The metasurface may have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for a specific wavelength and angle of incidence). In some examples, the generator may be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, process 1800 may be Figure 2 implemented in the generator training application 68B and / or the simulator application 68C in

[0143] In some examples, process 1800 may be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in Figure 17 ), and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions. In some examples, process 1800 may be executed to train a generator (e.g., Figure 5 the generator 1708 in

[0144] At 1804, process 1800 may receive randomized data. In some examples, the randomized data may be randomized noise. In some examples, the randomized data may be a string of random values formed as a two-dimensional input matrix. In some examples, the randomized data may be Figure 17 the noise input 1704 in

[0145] In some examples, process 1800 may receive a set of randomized data (e.g., a set of one hundred or more noise matrices), which can be used to train the generator. Then, process 1800 may proceed to 1808.

[0146] At 1812, process 1800 may provide the randomized data to a generator. Then, process 1800 may proceed to 1816.

[0147] At 1816, process 1800 may receive a metasurface design from the generator. In some examples, the metasurface design may be Figure 17 the metasurface design 1712 in. The metasurface design may include fabrication data that allows for the fabrication of the metasurface based on the metasurface design. Thus, the metasurface design may be used as a blueprint for the metasurface. In some examples, the metasurface design may include an x-axis pitch value, a y-axis pitch value, a thickness value, material information, and a mapping of one or more features. The mapping of one or more features may include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature may be a continuous portion of a given material. For example, a metasurface including two materials may have ten features, where four features are formed by a first material and six features are formed by a second material. In some examples, the metasurface design may include a grid surface representation of the metasurface.

[0148] In some examples, process 1800 may shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using Figure 13 the metasurface design shifting module 1304 in). In some examples, process 1800 may perform Figure 13 at least a portion of the process 1300 in. In some examples, the generator may include a metasurface design shifting module (e.g., the metasurface design shifting module 1304) and may automatically shift the features before outputting the metasurface design. Then, process 1800 may proceed to 1820.

[0149] At 1820, process 1800 may provide the metasurface design and a portion of the metasurface design dataset to a discriminator. This portion of the metasurface design dataset may include the metasurface design associated with a manufacturable metasurface. Then, process 1800 may proceed to 1824.

[0150] At 1824, process 1800 may receive an adversarial loss value from the discriminator. The discriminator may generate the adversarial loss value based on the metasurface design and a portion of the metasurface design dataset. The discriminator may generate the adversarial loss value based on the manufacturability of the metasurface design. Then, process 1800 may proceed to 1828.

[0151] At 1828, process 1800 may provide the metasurface design to a simulator. In some examples, the simulator may include Figure 4 the simulator 420 in, Figure 9 the simulator 920 in, Figure 11 the physics-based simulator 1116 in,Figure 11 the machine learning-based simulator 1120 in Figure 17 and / or the simulator 1728 in

[0152] In some examples, process 1800 may provide additional data to the simulator. In some examples, process 1800 may provide physical parameter values to the simulator. In some examples, the physical parameter values may include pitch values and / or thickness values. In some examples, process 1800 may scale the physical parameter values before providing them to the simulator. In some examples, process 1800 may provide multiple Fourier orders to the simulator. In some examples, the simulator may simulate desired optical properties (e.g., polarization and / or mode).

[0153] In some examples, the simulator may generate one or more performance metric values, such as reflection values, transmission values, or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the simulator may include an RCWA simulator such as RETICOLO or S4, and / or an FDTD simulator such as Lumerical or Meep. In some examples, the simulator may generate a device gradient based on the metasurface design. The device gradient may include a gradient related to one or more pitch values and / or thickness values. Specifically, the device gradient may be associated with physical parameter values such as one or more pitch values and / or thickness values because the device gradient reflects the overall performance of the metasurface device with certain refractive index values and physical parameter values, even if the physical parameter values are non-differentiable. Then, process 1800 may proceed to 1832.

[0154] At 1832, process 1800 may receive one or more performance values from the simulator. In some examples, the one or more performance values may include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. Then, process 1800 may proceed to 1836.

[0155] In some examples, process 1800 can calculate multiple loss values based on adjoint methods to obtain the gradient of the metasurface design as described above. Then, process 1800 can calculate a base loss value based on the gradient using a base loss function such as Gaussian, sigmoid, or softplus techniques. In some examples, process 1800 can generate weights for wavelength, angle, and / or target efficiency to be included in the performance parameter values according to a triangular, Gaussian, or uniform distribution, and apply the weights and any λ coefficients to generate a final sum of the loss values. Then, the final sum can be used as the loss value. Then, process 1800 can proceed to 1840.

[0156] At 1840, process 1800 can update the generator based on the efficiency loss value and the adversarial loss value. In some examples, if a condition has not been met (e.g., a predetermined number of training cycles have not been performed, a predetermined performance value has not been met, etc.), then process 1800 can proceed to 1812 to continue training the generator. Otherwise, process 1800 can proceed to 1844.

[0157] At 1844, process 1800 can output the generator to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium. Then, process 1800 can end.

[0158] Figure 19 Exemplary process 1900 for generating a metasurface design using a GAN in accordance with aspects of the present disclosure is illustrated. Specifically, process 1900 can generate a metasurface design that can be fabricated for various metasurface devices using a GAN. In some examples, the metasurface design can include a metasurface (e.g., Figure 3 metasurface 300 in Figure 3 ). In some examples, the metasurface design can include a metasurface device and / or a portion of the metasurface device (e.g., Figure 3 metasurface device 304 in Figure 3in the substrate 312). In some examples, the metasurface device and / or portions of the metasurface device can be pre-determined. In some examples, the metasurface can be exposed to air on one or more sides, which means that the superstrate and / or substrate can be air. In some examples, the superstrate and / or substrate can include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or substrate can be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or substrate can include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or substrate can be the same. The metasurface can have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for a specific wavelength and angle of incidence). In some examples, a generator can be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, process 1900 can be at Figure 2 implemented in the metasurface design generator application 68A, the generator training application 68B, and / or the simulator application 68C in

[0159] In some examples, process 1900 can be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in

[0160] and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions. At 1904, process 1900 can receive one or more metasurface application parameter values. In some examples, the one or more metasurface application parameter values can be selected by a user. In some examples, the one or more metasurface application parameter values can include one or more physical parameter values and / or performance parameter values. In some examples, the one or more physical parameter values can be Figure 4 the physical parameter values 408 in

[0161] In some examples, the performance parameter values can includeFigure 4 One or more of the user-defined metasurface specifications 416 in []. Performance parameter values can be selected (e.g., by a user) in order to train a generator to produce a metasurface design having a desired performance quality. In some examples, the performance parameter values can include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the above formulas 2 and / or 3 can be used to generate the performance parameter values. Then, process 1900 can proceed to 1908.

[0162] At 1908, process 1900 can select a generator based on the one or more metasurface application parameter values. In some examples, process 1900 can select a trained generator that satisfies each of the one or more metasurface application parameter values. In some examples, process 1900 can select a generator from a database of generators previously trained using a discriminator in a GAN. In some examples, process 1900 can train a generator to generate a metasurface design that satisfies each of the one or more metasurface application parameter values. In some examples, process 1900 can execute Figure 18 At least a portion of process 1800 in [] in order to train the generator using the one or more metasurface application parameter values. Once the generator has been selected and / or trained, process 1900 can proceed to 1912.

[0163] At 1912, process 1900 can provide randomized data to the generator. In some examples, process 1900 can receive the randomized data from a user and / or a database. In some examples, the randomized data can be randomized noise. In some examples, the randomized data can be a string of random values formed as a two-dimensional input matrix. In some examples, the randomized data can be Figure 17 The noise input 1704 in []. Then, process 1900 can proceed to 1916.

[0164] At 1916, process 1900 can receive a metasurface design from the generator. In some examples, the metasurface design can be Figure 17 The metasurface design 1712 in []. The metasurface design can include manufacturing data that allows for the fabrication of the metasurface based on the metasurface design. Thus, the metasurface design can be used as a blueprint for the metasurface. In some examples, the metasurface design can include x-axis spacing values, y-axis spacing values, thickness values, material information, and a mapping of one or more features. The mapping of one or more features can include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature can be a continuous portion of a given material. For example, a metasurface including two materials can have ten features, where four features are formed of a first material and six features are formed of a second material. In some examples, the metasurface design can include a grid surface representation of the metasurface.

[0165] In some examples, process 1900 may shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using the metasurface design shifting module 1304 in Figure 13 . In some examples, process 1900 may perform at least a portion of the flow 1300 in Figure 13 . In some examples, the generator may include a metasurface design shifting module (e.g., metasurface design shifting module 1304), and may automatically shift features before outputting the metasurface design. Then, process 1900 may proceed to 1920.

[0166] At 1920, process 1900 may output the metasurface design to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium. Then, process 1900 may end.

[0167] Figure 20 illustrates an exemplary grid surface representation of a metasurface design in accordance with aspects of the present disclosure. The grid surface representation may include a plurality of variables. Each variable included in the grid surface representation may represent the refractive index of a pixel in a fixed position. In some simulators, such as RETICOLO, the metasurface design is not represented as a grid image, but rather as a set of features. Each feature may include a refractive index, height, width, and shape. The shape may range from rectangular to elliptical. As described above, the generator may be trained to generate a metasurface design that includes a grid surface representation of the metasurface. Before simulation, the grid surface representation needs to be converted to a set of features. In some examples, the process may use a function to convert the grid surface representation to a set of features that constructs a rectangular feature for each pixel in the grid surface representation, where the refractive index is based on the value of the pixel.

[0168] Figure 21 illustrates an exemplary non-grid surface representation of a metasurface design in accordance with aspects of the present disclosure. In some examples, the non-grid representation of the features may directly describe the dimensions and positions of the individual features. The non-grid representation of the features may include a height value, a width value, an x position, and a y position for each feature. The adjoint method cannot calculate the gradient based on the non-grid representation, so finite differences may be calculated to approximate the gradient. Finite differences require 1 + N simulations to estimate the gradient, where N is the number of degrees of freedom of the representation. The adjoint method requires 1 + M simulations, where M is the order of the gradient required.

[0169] For a small number of orders, it seems that the adjoint method will be more efficient than the finite difference method. However, the simulation time is linearly related to the number of features. Depending on which surface geometry is desired in the metasurface design, a non-grid representation with far fewer features than the grid representation can be used to describe, thus narrowing the performance gap. The non-grid representation can describe the size and position of individual features and can incorporate manufacturability constraints. In some examples, the output of the metasurface generator in the range (-1, 1) can be scaled to the minimum and maximum feature sizes and positions before providing the metasurface design to the simulator.

[0170] Figure 22 An exemplary process 2200 for training a generator to generate a metasurface design using a rasterization technique in accordance with aspects of the present disclosure is illustrated. Process 2200 can utilize an adjoint method and a generator that produces a non-grid representation of the metasurface. Process 2200 can utilize a shape decoder network 2216 to convert a more abstract representation produced by the network into a grid for simulation.

[0171] Process 2200 can include providing a noise input 2204 to a generation network 2208. The noise input 2204 can be the Figure 17 noise input 1704 in. The generation network 2208 can be a machine learning model, such as a neural network (e.g., a recurrent neural network). The generation network 2208 can be trained to output a metasurface design with a non-grid representation. The non-grid representation can include a set of codes. The metasurface design can be provided to a shape decoder network 2216 along with shape constraints 2212. The shape decoder network 2216 can convert each code included in the metasurface design into a vector path based on the shape constraints 2212. Process 2200 can provide the vector path to a rasterizer and a synthesizer 2220 that generates a final metasurface design 2224. The process can provide the final metasurface design 2224 to a simulator 2228 to generate an efficiency loss, which can be used to update the generation network 2208.

[0172] Process 2200 can use a shape decoder 2216 and a differentiable rasterizer and synthesizer 2220 to convert the output of the generation network 2208 into a grid before simulation. The shape decoder 2216 can include non-learnable parameters that can be adapted to impose restrictions on the size or complexity of the predicted paths. The non-learnable parameters allow control of the feature sizes described in the finite difference method above while allowing the generation network 2208 to predict and optimize features that are more complex than rectangular and elliptical simulator primitives.

[0173] Using a non-raster representation can provide additional opportunities for the loss function to encourage manufacturability. Even if the representation itself allows for some non-manufacturable surfaces, it may be more straightforward to implement a loss function to encourage manufacturability. For example, a loss that penalizes small distances between each feature and its neighboring features can be implemented in the method using simulator primitives and finite differences. By using differentiable rasterization techniques such as process 2200, a loss that penalizes small, connected components can be implemented, given the structure of the differentiable rasterizer and synthesizer.

[0174] Figure 23 Illustrated is an exemplary process 2300 for training a generator to generate a metasurface design using rasterization techniques in accordance with aspects of the present disclosure. Specifically, process 2300 can train a generator to use a rasterizer and a synthesizer to generate a manufacturable metasurface design during training. In some examples, the metasurface design can include a metasurface (e.g., Figure 3 metasurface 300 in). In some examples, the metasurface design can include a metasurface device and / or a portion of a metasurface device (e.g., Figure 3 metasurface device 304 in) and / or be associated with a metasurface device and / or a portion of a metasurface device. In some examples, the metasurface design can include a superstrate (e.g., Figure 3 superstrate 308 in) and a substrate (e.g., Figure 3 substrate 312 in). In some examples, the metasurface device and / or a portion of the metasurface device can be pre-determined. In some examples, the metasurface can be exposed to air on one or more sides, meaning that the superstrate and / or the substrate can be air. In some examples, the superstrate and / or the substrate can include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or the substrate can be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or the substrate can include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or the substrate can be the same. The metasurface can have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for a specific wavelength and angle of incidence). In some examples, the generator can be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, the generator can include Figure 22 the generation network 2208, the shape decoder network 2216, and the rasterizer and synthesizer 2220 in. In some examples, process 2300 can be implemented in Figure 2 the generator training application 68B and / or the simulator application 68C in.

[0175] In some examples, process 2300 may be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 memory 32 in

[0176] ), and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions. Figure 22 At 2304, process 2300 may receive randomized data. In some examples, the randomized data may be randomized noise. In some examples, the randomized data may be a string of random values formed into a two-dimensional input matrix. In some examples, the randomized data may be

[0177] noise input 2204 in

[0178] . In some examples, process 2300 may receive a set of randomized data (e.g., a set of one hundred or more noise matrices) that may be used to train the generation network. Then, process 2300 may proceed to 2308.

[0179] At 2308, process 2300 may receive a shape constraint. The shape constraint may include one or more constraints that may encourage the generation of manufacturable metasurface designs. Then, process 2300 may proceed to 2312.

[0180] At 2312, process 2300 may provide the randomized data to the generation network. Then, process 2300 may proceed to 2316.

[0181] At 2316, process 2300 may receive a non-rasterized metasurface design from the generation network. The non-raster representation may include a set of codes. Then, process 2300 may proceed to 2320.

[0182] At 2320, process 2300 may provide the non-rasterized metasurface design and the shape constraint to the shape decoder network. The shape decoder network may convert each code included in the metasurface design into a vector path based on shape constraint 2212. Then, process 2300 may proceed to 2324.

[0183]

[0184] At 2324, process 2300 may receive the vector path from the shape decoder network. Then, process 2300 may proceed to 2328.At 2336, process 2300 may provide a rasterized metasurface design to a simulator. In some examples, the simulator may include simulator 420 in Figure 4 simulator 920 in Figure 9 physics-based simulator 1116 in Figure 11 machine learning-based simulator 1120 in Figure 11 simulator 1728 in Figure 17 and / or simulator 2228 in Figure 22 In some examples, process 2300 may provide additional data to the simulator. In some examples, process 2300 may provide physical parameter values to the simulator. In some examples, the physical parameter values may include pitch values and / or thickness values. In some examples, process 2300 may scale the physical parameter values before providing them to the simulator. In some examples, process 2300 may provide multiple Fourier orders to the simulator. In some examples, the simulator may simulate desired optical properties (e.g., polarization and / or mode).

[0185] In some examples, the simulator may generate one or more performance metric values, such as reflection values, transmission values, or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the simulator may include an RCWA simulator such as RETICOLO or S4, and / or an FDTD simulator such as Lumerical or Meep. In some examples, the simulator may generate a device gradient based on the rasterized metasurface design, pitch values, and / or thickness values. The device gradient may include gradients associated with one or more pitch values and / or thickness values. Specifically, the device gradient may be associated with physical parameter values such as one or more pitch values and / or thickness values because the device gradient reflects the overall performance of a metasurface device having certain refractive index values and physical parameter values, even if the physical parameter values are non-differentiable. Then, process 2300 may proceed to 2340.

[0186] At 2340, process 2300 may receive one or more performance values from the simulator. In some examples, the one or more performance values may include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. Then, process 2300 may proceed to 2344.

[0187] At 2344, process 2300 may determine a loss value based on the performance values. In some examples, process 2300 may determine the loss value based on the performance values and a set of performance parameter values. In some examples, process 2300 may receive one or more performance parameter values (e.g., from a user) indicating a performance target for the rasterized metasurface design. In some examples, the loss may be calculated based on at least one of the above formulas 1 and 4 to 15.

[0188] In some examples, process 2300 may calculate multiple loss values based on adjoint methods to obtain the gradient of the rasterized metasurface design as described above. Then, process 2300 may calculate a base loss value based on the gradient using a base loss function such as Gaussian, sigmoid, or soft plus techniques. In some examples, process 2300 may generate weights for wavelength, angle, and / or target efficiency to be included in the performance parameter values according to a triangular, Gaussian, or uniform distribution, and apply the weights as well as any λ coefficients to generate a final sum of the loss values. The final sum may then be used as the loss value. Then, process 2300 may proceed to 2348.

[0189] At 2348, process 2300 may update the generator network based on the efficiency loss value and the adversarial loss value. In some examples, if a condition has not been met (e.g., a predetermined number of training cycles have not been performed, a predetermined performance value has not been satisfied, etc.), process 2300 may proceed to 2312 to continue training the generator network. Otherwise, process 2300 may proceed to 2352.

[0190] At 2352, process 2300 may output the generator to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium. The generator may include a generator network, a shape decoder network, and a rasterizer and synthesizer. Then, process 2300 may end.

[0191] Figure 24 An exemplary process for generating a metasurface design using rasterization techniques in accordance with aspects of the present disclosure is illustrated. In some examples, the metasurface design may include a metasurface (e.g., Figure 3 metasurface 300 in Figure 3 ). In some examples, the metasurface design may include a metasurface device and / or a portion of the metasurface device (e.g., Figure 3 metasurface device 304 in Figure 3in the substrate 312). In some examples, the metasurface device and / or portions of the metasurface device may be pre-determined. In some examples, the metasurface may be exposed to air on one or more sides, which means that the superstrate and / or substrate may be air. In some examples, the superstrate and / or substrate may include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or substrate may be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or substrate may include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or substrate may be the same. The metasurface may have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency for specific wavelengths and angles of incidence). In some examples, the generator may be trained to output a metasurface design for a pre-determined metasurface device (e.g., a pre-determined substrate and superstrate). In some examples, process 2400 may be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in), and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions.

[0192] At 2404, process 2400 may receive one or more metasurface application parameter values. In some examples, the one or more metasurface application parameter values may be selected by a user. In some examples, the one or more metasurface application parameter values may include one or more physical parameter values, shape constraints, and / or performance parameter values. In some examples, the one or more physical parameter values may be Figure 4 the physical parameter values 408 in. In some examples, the one or more physical parameter values may be referred to as one or more physical parameter values. The one or more physical parameter values may include one or more values and / or ranges that the generated metasurface design may need to follow (e.g., the specifications of a pre-determined application). In some examples, the one or more physical parameter values may include physical parameter values such as thickness values (e.g., z-axis length), width spacing values (e.g., x-axis length), and / or height spacing values (e.g., y-axis length). In some examples, the one or more physical parameter values may include ranges of values for each of x-axis spacing, y-axis spacing, and thickness.

[0193] In some examples, the performance parameter values may include Figure 4One or more of the user-defined metasurface specifications 416 in. Performance parameter values can be selected (e.g., by the user) in order to train the generator to produce a metasurface design with a desired performance quality. In some examples, the performance parameter values can include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the above formulas 2 and / or 3 can be used to generate the performance parameter values. Then, process 2400 can proceed to 2408.

[0194] At 2408, process 2400 can select a generator based on the one or more metasurface application parameter values. In some examples, process 2400 can select a trained generator that satisfies each of the one or more metasurface application parameter values. In some examples, process 2400 can select a generator from a generator database that includes a generative network configured to generate non-rasterized metasurface designs. In some examples, process 2400 can train a generator to generate a metasurface design that satisfies each of the one or more metasurface application parameter values. In some examples, process 2400 can execute Figure 23 At least a portion of process 2300 in to train the generator using the one or more metasurface application parameter values. Once the generator has been selected and / or trained, process 2400 can proceed to 2412.

[0195] At 2412, process 2400 can provide the randomized data to the generator. In some examples, process 2400 can receive the randomized data from a user and / or a database. In some examples, the randomized data can be randomized noise. In some examples, the randomized data can be a string of random values formed as a two-dimensional input matrix. In some examples, the randomized data can be Figure 22 The noise input 2204 in. Then, process 2400 can proceed to 2416.

[0196] At 2416, process 2400 can receive a metasurface design from the generator. In some examples, the metasurface design can be Figure 22The final metasurface design 2224 therein. The metasurface design can include manufacturing data that allows for the fabrication of the metasurface based on the metasurface design. Thus, the metasurface design can be used as a blueprint for the metasurface. In some examples, the metasurface design can include an x-axis pitch value, a y-axis pitch value, a thickness value, material information, and a mapping of one or more features. The mapping of one or more features can include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature can be a continuous portion of a given material. For example, a metasurface including two materials can have ten features, where four features are formed of a first material and six features are formed of a second material. In some examples, the metasurface design can include a grid surface representation of the metasurface.

[0197] In some examples, process 2400 can shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using Figure 13 the metasurface design shifting module 1304 in Figure 13 ). In some examples, process 2400 can execute at least a portion of flow 1300 in

[0198] ). In some examples, the generator can include a metasurface design shifting module (e.g., metasurface design shifting module 1304) and can automatically shift features before outputting the metasurface design. Then, process 2400 can proceed to 2420.

[0199] Figure 25 Illustrates an exemplary process 2500 for generating a metasurface design using genetic algorithm techniques in accordance with aspects of the present disclosure. In some examples, the metasurface design can include a metasurface (e.g., Figure 3 the metasurface 300 in Figure 3 ). In some examples, the metasurface design can include a metasurface device and / or a portion of a metasurface device (e.g., Figure 3 the metasurface device 304 in Figure 3the substrate 312). In some examples, the metasurface device and / or portions of the metasurface device can be pre-determined. In some examples, the metasurface can be exposed to air on one or more sides, which means that the superstrate and / or substrate can be air. In some examples, the superstrate and / or substrate can include one or more solid materials such as polymers (e.g., polyethylene terephthalate and / or polyvinyl butyral) and / or silica glass. In some examples, the superstrate and / or substrate can be a uniform material with a pre-determined thickness. In some examples, the superstrate and / or substrate can include multiple layers of materials each having a pre-determined thickness. In some examples, the superstrate and / or substrate can be the same. The metasurface can have a pre-determined thickness and contain two materials arranged to produce a desired effect (e.g., enhancing the transmission efficiency at specific wavelengths and angles of incidence). In some examples, process 2500 can be implemented in Figure 2 the metasurface design generator application 68A in. In some examples, process 2500 can be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in), and executed by one or more processors (e.g., processor 28) coupled to the at least one non-transitory computer-readable storage medium and configured to execute the instructions.

[0200] At 2504, process 2500 can receive metasurface design performance parameter values. In some examples, the metasurface design performance parameter values can include Figure 4 one or more of the user-defined metasurface specifications 416 in. The performance parameter values can be selected (e.g., by the user) to train the generator to produce a metasurface design with a desired performance quality. In some examples, the performance parameter values can include reflection values, transmission values, and / or absorption values for one or more wavelengths, angles, and / or orders. In some examples, the above formulas 2 and / or 3 can be used to generate the performance parameter values. Then, process 2500 can proceed to 2508.

[0201] At 2508, process 2500 can generate a set of genomes. In some examples, each genome included in the set of genomes can include a one-dimensional array. Each element in the one-dimensional array can be referred to as a gene. In some examples, each genome included in the set of genomes can be randomly generated. Then, process 2500 can proceed to 2512.

[0202] At 2512, process 2500 may generate a metasurface design set based on the genome set. In some examples, process 2500 may generate the metasurface design set by, for each genome included in the genome set, generating a two-dimensional matrix. Then, process 2500 may scale up each two-dimensional matrix to generate an associated metasurface design included in the metasurface design set.

[0203] Each metasurface design may include manufacturing data that allows for the fabrication of a metasurface based on the metasurface design. Thus, the metasurface design may serve as a blueprint for the metasurface. In some examples, the metasurface design may include an x-axis pitch value, a y-axis pitch value, a thickness value, material information, and a mapping of one or more features. The mapping of one or more features may include position data (e.g., x and y coordinates) of one or more features in the metasurface. Each feature may be a continuous portion of a given material. For example, a metasurface including two materials may have ten features, where four features are formed of a first material and six features are formed of a second material. In some examples, the metasurface design may include a grid surface representation of the metasurface.

[0204] In some examples, process 2500 may shift any discontinuous features in the metasurface design to create at least one larger feature (e.g., using Figure 13 the metasurface design shifting module 1304 in Figure 13 . In some examples, process 2500 may perform at least a portion of the flow 1300 in

[0205] . In some examples, the generator may include a metasurface design shifting module (e.g., metasurface design shifting module 1304) and may automatically shift features before outputting the metasurface design. Then, process 2500 may proceed to 2516.

[0206] At 2520, process 2500 may select a set of metasurface designs from the metasurface design set based on the set of fitness scores. In some examples, process 2500 may select the highest-scoring portion of the set of metasurface designs. For example, process 2500 may select a set of metasurface designs with fitness scores in the top ten percent of all metasurface designs. Then, process 2500 may proceed to 2524.

[0207] At 2524, process 2500 may generate one or more sub-metasurface designs based on the set of metasurface designs. In some examples, process 2500 may generate two sub-metasurface designs for each pair of metasurface designs included in the set of metasurface designs. In some examples, process 2500 may randomly pair the metasurface designs included in the set of metasurface designs without replacement and then generate two sub-metasurface designs for each pair of metasurfaces. In some examples, process 2500 may modify each sub-metasurface design. In some examples, for each pair of metasurface designs, process 2500 may modify the first sub-metasurface design by individually swapping each gene included in the genome of the first sub-metasurface design with the corresponding gene from the genome of the second sub-metasurface design with a pre-determined probability. In some examples, process 2500 may generate fitness scores for each sub-metasurface design and remove the lower-scoring sub-metasurface designs. Then, process 2500 may proceed to 2528.

[0208] At 2528, process 2500 may output one or more sub-metasurface designs to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium. Then, process 2500 may end. An advantage of process 2500 is that it can generate metasurface designs without using differentials and / or losses.

[0209] Figure 26 Illustrates an exemplary process for generating metasurface designs and associated ray tracing data in accordance with aspects of the present disclosure. In some examples, process 2600 may be implemented in the ray tracing application 68D in Figure 2 In some examples, process 2600 may be implemented as instructions on at least one non-transitory computer-readable storage medium (e.g., Figure 2 the memory 32 in

[0210] At 2604, process 2600 may receive a metasurface design. Then, process 2600 may proceed to 2608.

[0211] At 2608, process 2600 may provide a metasurface design to the simulator. Then, process 2600 may proceed to 2612.

[0212] At 2612, process 2600 may receive simulation data from the simulator. The simulation data may include performance information associated with the metasurface design. Then, process 2600 may proceed to 2616.

[0213] At 2616, process 2600 may generate a scattering distribution function file associated with the metasurface design based on the simulation data. Then, process 2600 may proceed to 2620.

[0214] At 2620, process 2600 may provide the scattering distribution function file to a ray tracing application. Then, process 2600 may proceed to 2624.

[0215] At 2624, process 2600 may receive ray tracing data from the ray tracing application. Then, process 2600 may proceed to 2628.

[0216] At 2628, process 2600 may output the scattering distribution function file and / or the ray tracing data to at least one of a user interface, an external device, or at least one non-transitory computer-readable storage medium. Then, process 2600 may end. An advantage of process 2600 is that a metasurface design can be generated without using differentials and / or losses.

[0217] In the detailed description of the exemplary embodiments of the present invention, reference is made to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. The exemplary embodiments are not intended to be an exhaustive listing of all embodiments in accordance with the present invention. It should be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. Accordingly, the following detailed description is not to be considered limiting, and the scope of the present invention is defined by the appended claims.

[0218] Unless otherwise specified, all numbers expressing feature sizes, amounts, and physical properties used in this specification and the claims are to be understood as being modified in all instances by the term "about," "approximately," or "substantially." Accordingly, unless indicated to the contrary, the numerical parameters set forth in the foregoing specification and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by those skilled in the art using the teachings disclosed herein.

[0219] Unless the context clearly dictates otherwise, as used in the specification and the appended claims, the singular forms "a", "an", and "the" cover embodiments having plural referents. Unless the context clearly dictates otherwise, as used in the specification and the appended claims, the term "or" is generally employed in its sense including "and / or".

[0220] It should be recognized that, according to this example, certain actions or events of any of the methods described herein can be implemented in a different order, can be added together, combined, or omitted (e.g., not all of the described actions or events are necessary for the practice of the method). Additionally, in certain examples, the actions or events can be executed, for example, through multi-threading, interrupt processing, or by multiple processors simultaneously rather than sequentially.

[0221] The techniques described in this disclosure can be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, aspects of the described techniques can be implemented in one or more processors, including one or more microprocessors, CPUs, GPUs, DSPs, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuits, as well as any combination of such components. The term "processor" or "processing circuit" generally can refer to any of the foregoing logic circuits (e.g., fixed function circuits, programmable circuits, or any combination of fixed function circuits and programmable circuits), alone or in combination with other logic circuits, or any other equivalent circuit. A control unit incorporating hardware can also execute one or more of the techniques in this disclosure.

[0222] Such hardware, software, and firmware can be implemented within the same device or in different devices to support the various operations and functions described in this disclosure. Additionally, any of the described units, modules, or components can be implemented together or separately as discrete but cooperating logic devices. Depicting different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be implemented by separate hardware or software components. Instead, the functions associated with one or more modules or units can be performed by separate hardware or software components or integrated in common or separate hardware or software components.

[0223] The techniques described in this disclosure may also be embodied or encoded in a computer-readable medium, such as a computer-readable storage medium, that contains instructions. For example, when executed, the instructions embedded or encoded in the computer-readable storage medium may cause a programmable processor or other processor to perform the method. The computer-readable storage medium may include: random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, hard disk, CD-ROM, floppy disk, cassette tape, magnetic medium, optical medium, or other computer system-readable media.

[0224] Various examples have been described. These examples, as well as other examples, are within the scope of the following claims.

Claims

1. An apparatus, the apparatus comprising: at least one non-transitory computer-readable storage medium having instructions stored thereon; and processing circuitry coupled to the at least one non-transitory computer-readable storage medium, the processing circuitry being configured to execute the instructions to: provide randomized data to a neural network; receive a metasurface design from the neural network, the metasurface design including one or more features; provide the metasurface design to a simulator; receive a performance value from the simulator; determine a loss value based on the performance value; update the neural network based on the loss value; and output the neural network to at least one of a user interface, an external device, or the at least one non-transitory computer-readable storage medium.

2. The apparatus of claim 1, wherein the metasurface design further includes a grid representation of the metasurface associated with the one or more features.

3. The apparatus of claim 1, wherein the metasurface design includes a grid representation of the metasurface.

4. The apparatus of claim 1, wherein the one or more features include two or more features.

5. The apparatus of claim 4, wherein each feature included in the one or more features includes dimension information and position information.

6. The apparatus of claim 4, wherein the processing circuitry is further configured to execute the instructions to: generate a grid representation of the metasurface design based on the plurality of features; and provide the grid representation of the metasurface design to the simulator.

7. The apparatus of claim 4, wherein the processing circuitry is further configured to execute the instructions to: further determine the loss value based on the two or more features.