Methods, modules and systems for assisting radiation behavior simulation
The method and module for generating customized translation data using machine learning and interpolation techniques address the challenges of ray tracing by optimizing ray behavior simulation in complex scenes, improving accuracy and performance.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-10-01
- Publication Date
- 2026-04-09
AI Technical Summary
Efficiently manipulating ray files in ray tracing and path tracing rendering is challenging due to computational complexity, inter-object interactions, order-dependent effects, cumulative error, memory management, adaptive sampling, and parallelization difficulties, especially in complex scenes with multiple objects and optical setups that change over time.
A method and module for obtaining customized translation data for radiation setups, using machine learning and interpolation techniques to simulate ray behavior accurately and efficiently between surfaces, accounting for spatial and temporal changes in optical properties.
Enhances simulation accuracy and performance by optimizing ray calculations, allowing dynamic object placement without compromising simulation quality, applicable in rendering, optical simulation, and computer game design.
Smart Images

Figure IL2025050880_09042026_PF_FP_ABST
Abstract
Description
METHODS, MODULES AND SYSTEMS FOR ASSISTING RADIATION BEHAVIOR SIMULATIONCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from US provisional patent application no. 63 / 702,163 filed on October 2, 2024, which is herein incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present disclosure relates in general to methods modules and systems for assisting electromagnetic radiation simulation, and more particularly for assisting simulation of rays and / or electromagnetic radiation passed through at least one surface of a radiation setup.BACKGROUND
[0003] Ray simulation may relate to any simulation of electromagnetic radiation such as, yet not limited to, imaging, image processing, tracing of one or more properties of one or more rays when manipulated by one or more surfaces, rendering platforms / systems / optical simulation tools, etc.
[0004] Ray simulation typically involves manipulation of rays for simulating their behavior over virtual or actual surfaces.
[0005] Efficiently manipulating ray files in ray tracing and path tracing rendering or optical simulation software, specifically for ray data translating of a series of optical objects between two or more surfaces is extremely challenging and typically requires time and memory consuming resources.
[0006] The process of ray data translating of multiple rays between input and output facets / surfaces / optical-objects / elements in a ray tracing scenario presents several significant challenges:
[0007] Computational Complexity:
[0008] As the number of objects increases, the computational demands may grow exponentially. Each object has several surfaces and optical characteristics for how it affects ray paths and other ray properties, leading to a substantial increase in processing time and resource usage.
[0009] Inter-object Interactions:
[0010] With multiple objects, rays may interact (such as by being reflected, transmitted, refracted, diffracted, etc.) with several objects before reaching the output facet. This creates complex paths that are difficult to predict and model accurately, as each interaction can significantly alter the ray's trajectory and optionally other ray properties such as phase, polarization, intensity / amplitude, etc.
[0011] Order-dependent Effects:
[0012] The sequence in which rays encounter objects / surfaces becomes crucial. Changing the order of objects or changing the orientation of each object can lead to dramatically different results, requiring careful management of object priorities and their effects on ray properties.
[0013] Cumulative Error:
[0014] Small inaccuracies in ray calculations can compound as the ray interacts with multiple objects. These cumulative inaccuracies can lead to significant discrepancies in the final output, especially for complex scenes with many objects.
[0015] Memory Management:
[0016] Tracking the state and properties of numerous objects, along with the paths of multiple rays, can strain memory resources. Efficient data structures and memory management become critical for performance.
[0017] Adaptive Sampling Challenges:
[0018] Determining where to allocate more computational resources becomes more complex with multiple objects and / or multiple rays. Areas of high detail or frequent ray interactions may require more intensive sampling. However, identifying these areas accurately is challenging.
[0019] Parallelization Difficulties:
[0020] While parallel processing can help, dividing the workload efficiently becomes more difficult with interrelated objects. Ensuring that parallel computations do not interfere with each other adds another layer of complexity.
[0021] Maintaining Physical Accuracy:
[0022] Ensuring that the behavior of radiation remains physically accurate through multiple object interactions is challenging. Each object may have different optical properties, requiring careful consideration of how these properties interact and affect ray properties.
[0023] Optical apparatus Dynamics:
[0024] If optical objects / surfaces of the optical setup used move and / or change properties over time, the system must recalculate ray properties continuously, adding temporal complexity to an already computationally intensive process. Several critical examples include changing the Stop radius in an imaging configuration, which dramatically affects the depth of focus, and changing the location of an optical setup such as a camera’s sensors for proper imaging of objects at different distances. Another example is the location change of several lenses of the optical setup, to provide high quality Photographic Zoom actions simulation. Another example is the change of path length in interferometer optical setup and its coherent effect on the accumulated coherent detection. Another example is the different phase and amplitudes added in a spatial light modulator as part of a 4-f optical pulse shape or spatial shape optical system. Another example is the slit input of a spectrometer or monochromator optical setup.
[0025] Optimization Trade-offs:
[0026] Balancing between accuracy and performance becomes increasingly difficult. Simplifications that work for scenes with few objects may break down or produce noticeable artifacts in complex, multi-object scenarios.
[0027] Addressing these and other challenges requires algorithms, efficient data structures, and careful optimization strategies to ensure high quality and timely processing / rendering of complex scenes with multiple scene and optical objects between input and output facets.SUMMARY
[0028] Aspects of disclosed embodiments pertain to a method, implementable by a processing circuitry, for assisting radiation behavior simulation, the method may include one or more of the following steps:
[0029] obtaining customized translation data associated with a specific radiation setup, the customized translation data comprises ray translation data of each of one or more rays propagated between at least two surfaces; and
[0030] using the customized translation data of the specific radiation setup for simulating behavior of one or more simulated rays passed through at least part of the specific radiation setup.
[0031] The customized translation data may be used for simulation of behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
[0032] According to some embodiments, the radiation setup may include at least one of: an optical setup, an X-ray setup, a radio frequency (RF) setup, a THz setup, a microwave setup, Gamma radiation setup, wherein the rays propagated between the at least two surfaces are within any predefined spectral range.
[0033] According to some embodiments, the customized translation data may be used to translate one or more simulated rays from one of the at least two surfaces to another surface of the at least two surfaces.
[0034] According to some embodiments, the simulation of the behavior of the one or more simulated rays may be done for one or more of: (i) scene rendering, (ii) simulation of optical systems, (iii) simulation used for computer game designing, planning and / or running, (iv) detection simulation, (v) imaging simulation, (vi) simulation of a radiation system.
[0035] According to some embodiments, the simulation of the behavior of the one or more simulated rays may be done by using at least one simulation module.
[0036] According to some embodiments, each ray translation data of the customized translation data may pertain to one or more of: one or more ray properties; one or more translation parameters' values; one or more translation factors; one or more translation instructions.
[0037] For example, the one or more ray properties and / or the one or more translation parameters' values may pertain to one or more of: ray coordinates; ray phase; ray wavelength, color and / or frequency; ray propagation direction; ray intensity, amplitude or energy; ray flux; ray polarization; ray radiation path or optical path; ray trajectory; one or more interference patterns of the ray; one or more instructions for translating one or more properties of the ray; one or more deduced parameters of the ray.
[0038] According to some embodiments, the radiation path or the optical path of each ray may be determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
[0039] According to some embodiments, the customized translation data may be in a format of a table or an array associating each ray of the one or more rays, with a respective one or more of: ray properties, translation instructions, translation parameters or factors, and / or deduced parameters.
[0040] According to some embodiments, the customized translation data may be generated by using known characteristics and relative positions of one or more elements and / or surfaces of the specific radiation setup and relative location of at least one of the at least two surfaces .
[0041] The specific radiation setup may be virtual and / or real.
[0042] According to some embodiments, the method may also include checking whether the customized translation data requires adaptation to a specific simulation module, and / or adapting the customized translation data to the specific simulation module that is to use the customized translation data for simulating of the behavior of the one or more simulated rays, if the customized translation data requires adaptation to the specific simulation module, creating an adapted customized translation data that is used for the simulating of the behavior of the one or more simulated rays.
[0043] According to some embodiments, the method may include generating the customized translation data, using a translation module.
[0044] The generating of the customized translation data may include, for example, the steps of:
[0045] obtaining radiation setup data of a specific radiation setup;
[0046] processing the radiation setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
[0047] In cases in which one or more components of the specific radiation setup has spatial and / or translation symmetry, the method may further include the step(s) of:
[0048] defining several different symmetrical parts of the specific radiation setup, where the generation of customized translation data of the specific radiation setup may be done by generating customized translation data of one part of the one or more rays passed through one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry thereof.
[0049] Non-limiting example of types of spatial and / or translation symmetry comprises one or more of: cylindrical symmetry; planar symmetry; rotational symmetry; translational symmetry; scale Invariance.
[0050] According to some embodiments, the method may include the step(s) of conducting an approximation process for increasing the number of the one or more rays by using one or more approximation techniques, generating a larger number of rays.
[0051] According to some embodiments, the approximation process includes using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it.
[0052] According to some embodiments, the approximation process may be done by using one or more interpolation techniques, one or more differential ray techniques and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
[0053] According to some embodiments, the interpolation techniques may include, for example, one or more of the following techniques: bi-interpolation; cubic interpolation;random interpolation; spline interpolation; Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation; Hermit interpolation; Polynomic interpolation.
[0054] According to some embodiments, the machine learning based modeling may be done by training a machine learning model of a specific radiation setup, by using radiation setup data and / or a pre-generated lookup table or array of the specific radiation setup, for generating a trained model of the specific radiation setup.
[0055] According to some embodiments, the customized translation data of the specific radiation setup may be generated by using a cascaded / gradual technique, in which more than two surfaces are defined, and ray behavior of the rays between each pair of surfaces is determined.
[0056] According to some embodiments, the accumulation stage may be carried out at an accumulation surface, by waiting for all the rays before performing of the accumulation of the rays or by performing a temporal dependent cumulative accumulation of each of one or more part of the rays upon arrival thereof.
[0057] According to some embodiments, the method also includes updating the customized translation data.
[0058] According to some embodiments, the updating may be used for simulating of one or more changes in one or more of:
[0059] one or more properties of at least one element or surface of the specific radiation setup;
[0060] one or more properties of one or more of the at least two surfaces;
[0061] one or more properties of the one or more rays;
[0062] one or more sensor effects.
[0063] Aspects of disclosed embodiments pertain to a translation module for assisting radiation behavior simulation, where the translation module may be configured to:
[0064] obtain customized translation data, associated with a specific radiation setup, comprising ray translation data of each of one or more rays propagated between at leasttwo surfaces, wherein at least one of the at least two surfaces is of a specific radiation setup, and
[0065] enable one or more simulation modules of one or more types to use customized translation data of the specific radiation setups.
[0066] The customized translation data may be usable by the one or more simulation modules to simulate behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
[0067] According to some embodiments, the customized translation data may be used to translate one or more simulated rays from one of the at least two surfaces to another surface of the at least two surfaces.
[0068] According to some embodiments, the simulation of the behavior of the one or more simulated rays is done for scene rendering, simulation of optical systems and changes made therein, simulation used for computer game designing, planning and / or running.
[0069] According to some embodiments, each of the one or more simulation modules may be configured for visual and / or optical simulation.
[0070] According to some embodiments, each ray translation data of the customized translation data may pertain to one or more of: one or more ray properties; one or more translation parameters' values; one or more translation instructions.
[0071] According to some embodiments, the one or more ray properties and / or the one or more translation parameters' values may pertain to one or more of: ray phase; ray wavelength, color and / or frequency; ray propagation direction, ray intensity, amplitude or energy; ray flux; ray polarization; ray radiation path or optical path; ray trajectory; one or more interference patterns of the ray; one or more instructions for translating one or more properties of the ray; one or more deduced parameters of the ray.
[0072] According to some embodiments, the ray radiation path or optical path of each ray may be determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
[0073] According to some embodiments, the customized translation data may be in a format of a table or an array associating each simulated ray of the one or more simulated rays, with a respective one or more of: ray properties, translation instructions, translation parameters, and / or deduced parameters.
[0074] According to some embodiments, the translation module may further be configured for generating the customized translation data by using known characteristics and relative positions of one or more elements or surfaces of the specific radiation setup and relative location of at least one of the at least two surfaces.
[0075] According to some embodiments, the generating of the customized translation data may include the steps of:
[0076] obtaining a setup data of a specific radiation setup;
[0077] processing the setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
[0078] In cases in which one or more components of the specific radiation setup has spatial and / or translation symmetry, the method may include: defining several different symmetrical parts of the specific radiation setup, the generation of customized translation data of the specific radiation setup is done by generating customized translation data of one part of the one or more rays passed through one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry thereof.
[0079] According to some embodiments, the spatial and / or translation symmetry may include one or more of: cylindrical symmetry; planar symmetry; rotational symmetry; translational symmetry; scale Invariance.
[0080] The specific radiation setup may be virtual and / or real.
[0081] According to some embodiments, the translation module may be configured to check whether the customized translation data requires adaptation to a specific simulation module and enable adaption of the customized translation data to the specific simulation module via an adaptation module.
[0082] According to some embodiments, the adaptation module may be embedded in the translation module or in the simulation module.
[0083] According to some embodiments, the translation module may be configured to conduct an approximation process for increasing the number of the one or more rays by using one or more approximation techniques, generating a larger number of rays passed through the at least two surfaces.
[0084] According to some embodiments, the approximation process may include using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it.
[0085] According to some embodiments, the approximation process may be done by using one or more interpolation techniques, one or more differential techniques and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
[0086] According to some embodiments, the interpolation techniques may include one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation; Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation; Hermit interpolation; Polynomic interpolation.
[0087] According to some embodiments, the translation module may be configured to generate the customized translation data of the specific optical setup, by using a cascaded / gradual technique, in which more than two surfaces are defined, and ray behavior of the one or more rays between each pair of surfaces is determined.
[0088] According to some embodiments, the accumulation stage may be carried out at an accumulation surface, by waiting for all the rays before performing of the accumulation of the rays or by performing a temporal dependent cumulative accumulation of each of one or more parts of the rays upon arrival thereof.
[0089] According to some embodiments, the radiation setup may include at least one of an optical setup, an X-ray setup, a radio frequency (RF) setup, a THz setup, a microwave setup, Gamma radiation setup, wherein the rays propagated between the at least two surfaces are within any predefined spectral range.
[0090] According to some embodiments, the translation module and / or the simulation module may be configured for updating the customized translation data.
[0091] According to some embodiments, the updating may be used for simulating of one or more changes in one or more of
[0092] one or more properties of at least one element or surface of the specific radiation setup;
[0093] one or more properties of one or more of the at least two surfaces;
[0094] one or more properties of the one or more rays;
[0095] one or more sensor effects.BRIEF DESCRIPTION OF THE FIGURES
[0096] The figures illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
[0097] For simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity of presentation. Furthermore, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. References to previously presented elements are implied without necessarily further citing the drawing or description in which they appear. The figures are listed below.
[0098] Fig. 1 shows a flowchart, schematically illustrating a method for assisting ray behavior simulation, according to some embodiments;
[0099] Fig. 2 shows a flowchart, schematically illustrating a method for assisting ray behavior simulation that enables generation of customized translation data of specific radiation setups, according to some embodiments;
[0100] Fig. 3 shows a flowchart, schematically illustrating a method for assisting ray behavior simulation that enables adaptation of customized translation data, according to some embodiments;
[0101] Fig. 4 shows a flowchart, schematically illustrating a process for generating customized translation data of a specific radiation setup, in the format of a trained model, which is a trained machine-learning model, according to some embodiments.
[0102] Fig. 5 shows how a translation module can be used for providing a simulation module with customized translation data, according to some embodiments;
[0103] Fig. 6 shows optional modules of the translation module;
[0104] Fig. 7 shows ray tracing of an optical setup that includes a camera when there are no internal reflections, according to some embodiments;
[0105] Fig. 8 shows ray tracing of an optical setup that includes a camera when there are internal reflections, according to some embodiments;
[0106] Figures 9A and 9B, show a schematic illustration of a forward interpolation based generation of new rays (Fig. 9A) and a backward interpolation based generation of new of rays (Fig. 9B), for increasing rays number, according to some embodiments;
[0107] Figures 10A and 10B, show a schematic illustration of a forward differential based generation of new rays (Fig. 10A) and a backward differential based generation of new of rays (Fig. 10B), for increasing rays number, according to some embodiments;
[0108] Figures 11A and 11B schematically show how forward and backward propagation of ray tracing can be used for generating customized translation data of a camera optical setup, for rendering a scene, according to some embodiments: Fig. 11A shows a forward propagation scheme; and Fig. 11B shows a backward propagation scheme;
[0109] Fig. 12A shows an optical setup using Zeiss Tessar f2.8 50mm Lens and Luxcore Tenderer, according to some embodiments;
[0110] Fig. 12B shows the optical layout of the optical elements of the Zeiss Tessar f2.8 50mm Lens;
[0111] Figures 13A and 13B show how an object image can change in response to manipulation of the focal length of the camera, where: Fig. 13A is the image result when the Zeiss lens is not used; and Fig. 13B is the image resulting using the Zeiss lens;
[0112] Figures 14A and 14B show how the image of an object looks like in two different distances of the lens from a camera sensor: at 500mm distance (Fig. 14A) and at 1000mm (Fig. 14B);
[0113] Figures 15A and 15B show object's image in two different aperture values: Fig. 15A shows the image of the object at 7.187mm aperture size; and Fig. 15B shows the image of the object at 2.5mm aperture size;
[0114] Figures 16A-16D show how an image can be simulated / rendered using the customized translation data by using images of various stop aperture radiuses: Fig. 16A shows an image of a scene using a stop aperture with an aperture radius of 1mm; Fig. 16B shows an image of a scene using a stop aperture with an aperture radius of 3.5mm; and Fig. 16D shows the scenario image without simulation of the stop aperture;
[0115] Fig. 17 shows an example of a table format of customized translation data of a specific optical setup, according to some embodiments;
[0116] Fig. 18 shows an example of a spectrometer serving as a specific optical setup, for generating customized translation data of rays passed threrethrough, according to some embodiments;
[0117] Fig. 19 shows an example of an interferometer serving as a specific optical setup, for generating customized translation data of rays passed threrethrough, according to some embodiments;
[0118] Fig. 20 shows an optional manner in which the customized translation data of a specific radiation setup can be generated and the manner in which a simulation module can use the customized translation table, according to some embodiments;
[0119] Fig. 21 shows an example of a stop aperture having a single aperture with radial symmetry;
[0120] Fig. 22 shows an example of a multi-aperture stop aperture (MASA) having multiple apertures of different properties such as different location over the stop aperture surface, different shapes, different spectral filters, and / or different sizes;
[0121] Fig. 23 shows a schematic illustration of an X-ray based radiation setup for using customized translation data for assisting simulation of a scene in which a sample is X-rayed by a simulated or real X-ray system, according to some embodiments; and
[0122] Fig. 24 shows a schematic illustration of a radio frequency (RF) based radiation setup used for generating customized translation data thereof, for assisting simulation of an RF-based communication scene, according to some embodiments.DETAILED DESCRIPTION
[0123] Aspects of disclosed embodiments address the challenge of efficiently manipulating ray files in ray tracing and path tracing, for simulation platforms / modules, specifically for translating a series of rays between at least two surfaces. The main objective of disclosed embodiments is to enhance the simulation process for simulating radiation behavior, by providing a method for accurately and efficiently translating radiation behavior within a defined space, for example, for improving the physical realism and performance of 3D graphics of a scene and / or enhancing the speed of the simulation.
[0124] It is noted the term "ray(s)" used herein may refer to any type of a portion of electromagnetic radiation such as beam(s), signal(s), "wave(s), "field(s)", etc.
[0125] It is noted that the term "radiation setup" used herein may refer to any set of one or more elements / surfaces / devices that is used to manipulate and / or measure electromagnetic radiation such as, yet not limited to, an optical setup, an X-ray setup, a radio frequency (RF) setup, a microwave radiation setup, a Gamma radiation setup, etc. Examples given herein which may refer to optical setups shall not limit the scope of the possible implementation of the invention within other ranges of the electromagnetic spectrum.
[0126] It is further noted that the term "ray(s)" refers to any portion of radiation and may refer to any type of rays such as, yet not limited to, geometrical rays, complex- valued rays, electromagnetic fields or part(s) thereof, momentum k-vectors etc.
[0127] Core Functionality
[0128] • Separation of the simulation of the scene from the radiation setup. The radiation setup can be run prior to the simulation of the scene. It can be by pure ray-tracing or path tracing, physical / mathematical algorithms, such as diffraction and Maxwell’s equations, or by generation of a trained deep learning neural network that was trained by machine learning (ML), and / or artificial intelligence (Al).
[0129] • Ray data Generation and Analysis: input ray files may be analyzed to identify the properties and positions of elements of a scene and / or their responsive behavior to radiation.
[0130] • Customized translation data(Table / array / matrix / Algorithm / instructions / machine learning trained model) for each specific radiation setup between at least two defined surfaces.
[0131] • Ray Path Adjustment: adjusting the paths of rays interacting with the translated optical objects, ensuring accurate light behavior simulation.
[0132] • Surface Interaction Modeling: modeling how the translated objects interact with the two surfaces, accounting for factors such as reflection, refraction, diffraction, and / or absorption, for example.
[0133] Disclosed embodiment may enable improvement:
[0134] • Simulation accuracy for scenes involving moving or repositioned optical elements.
[0135] • Performance through optimized ray calculations for translated objects.
[0136] • Flexibility in scene composition, allowing for dynamic object placement without compromising
[0137] Simulation quality.
[0138] Disclosed embodiments may be applicable in many fields such as rendering, architectural visualization, optical simulation, Product design and prototyping, film and video game production, data generation for Al training, and Industrial and Scientific simulations involving simulation of any kind of electromagnetic radiation.
[0139] By providing a robust method / module(s) for obtaining radiation translation related data of radiation passing between at least two surfaces in ray tracing scenarios, this invention contributes to more realistic and efficient simulation processes.
[0140] Aspects of disclosed embodiments pertain to methods, modules and systems for assisting radiation behavior simulation.
[0141] The term "radiation behavior simulation" may refer to simulation of behavior of radiation entities such as, yet not limited to one or more rays passed through real and / or virtual one or more surfaces and / or elements that may manipulate the original radiation, where a ray can refer to any type of a radiation portion such as to a geometrical ray (amplitude and / or phase), a complex- valued field (such as a magnetic and / or electrical field), a k-vector (e.g., an optical momentum ray / field), etc. A radiation setup may be any type of a real or virtual device / system such as, yet not limited to, cameras, optical systems such as one or more interferometers, spectrometers, microscopes, pulse shapers, acoustic- optical modulators, X-ray systems / devices, Radio-frequency (RF), Terahertz (THz) systems, and / or any type of one or more detectors for any type of an electromagnetic sensing / imaging device / sy stem / simulation platform, etc.
[0142] It is noted that the term "module" used herein refers to any type of software and / or hardware means.
[0143] According to some embodiments, there is provided a method, implementable by a processing circuitry, for assisting light behavior simulation. According to some embodiments, the method may include the following steps:
[0144] Obtaining customized translation data associated with a specific radiation setup, the customized translation data comprises ray translation data of each of one or more rays propagated between at least two surfaces, wherein at least one of the at least two surfaces is of the specific radiation setup; and
[0145] using the customized translation data of the specific radiation setup for simulating behavior of one or more simulated rays passed through at least part of the specific radiation setup. Accumulation stage / process (Generalized) - As used herein, the term “accumulation stage / process” refers to the stage of an electromagnetic (e.g. optical) or rendering pipeline in which energy, or field, of rays, wavefront segments, orelectromagnetic field elements are combined at their corresponding surface-plane or detector locations to produce the final scene representation. The accumulation phase can be in a different surface from the generated rays and fields. The accumulation may include, but is not limited to:
[0146] Coherent Accumulation - complex amplitude and phase (Scalar field or Vectorfield) summation of ray / fields contributions, allowing interference, diffraction, and other phase-sensitive effects to be captured.
[0147] Incoherent Combination - Integration of intensity or power from individual rays / fields where relative phase is disregarded (Scalar field or Vector-field), as in traditional radiometric or photographic rendering.
[0148] Hybrid or Mixed Modes - Partial-coherence models in which some components are coherently combined while others are integrated incoherently, including wavelength- resolved or time-dependent accumulation.
[0149] Detector Pixel / voxel / triangle-mesh Integration - Mapping the combined results to discrete sensor pixels / triangles or continuous planes, applying temporal exposure windows, spatial point-spread functions, and optional electronic or quantum-noise models.
[0150] According to some embodiments, the radiation setup may include at least one of: an optical setup, an X-ray setup, a radio frequency (RF) setup, a THz setup, a microwave setup, Gamma radiation, wherein the rays propagated between the at least two surfaces are within any predefined spectral range.
[0151] The customized translation data may be used for a simulation of behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
[0152] The main goal of some aspects of the provided embodiments, is to improve radiation behavior or ray behavior simulation by providing customized translation data for translation of rays to be used by a simulation module, which includes translation data such as translation properties or instructions for simulating one or more effects applied upon one or more rays when they interact with one or more objects, elements and / or surfaces of the specific radiation setup, which can improve simulation quality, accuracy, detailingof objects' surfaces and / or reduce simulation computing time, complexity and / or resources utilization;
[0153] Each data file or data-cluster of customized translation data is associated with a specific virtual or real radiation setup of known properties such as known elements (indicative of physical effects they may cause to the rays), known relative positioning of the elements and their one or more surfaces in respect to one another, etc.
[0154] Once a simulation platform or module receives the customized translation data of the specific radiation setup it needs to use, it can automatically and quickly translate one or more ray properties of simulated (e.g. virtual) rays that it uses and optionally generates, and simulate how they interact with the specific radiation setup or part(s) thereof.
[0155] The term "ray properties" may refer to any one or more properties of each ray such as: propagation direction, ray trajectory, ray optical path (herein "ray path"), ray polarization, ray flux, ray intensity / amplitude / energy, ray phase, ray amplitude / intensity, ray wavelength / frequency, ray spatial distribution of energy, etc.
[0156] According to some embodiments, the customized translation data may be organized as a lookup table, a matrix or an array that is customized for the specific radiation setup, where each ray is associated with its respective "ray translation data".
[0157] According to some embodiment, a single original ray may form multiple rays in another surface and / or multiple rays may form a single ray or a reduced number of rays at another surface. Therefore, any translation can be made from a single ray to multiple rays (e.g. such as from partial reflection and transmission at the surface, and / or scattering and / or diffraction in different diffraction orders), from multiple rays to a single ray or reduced number of rays (e.g., rays can be absorbed or scattered inside the radiation setup), a single ray to a single ray, one ray or one or more rays to no rays (e.g., in case a stop aperture blocks transmission of one or more rays or the incoming ray hit one of the boundaries of the optical setup and do not reach the other surface), etc.
[0158] According to some embodiments, ray translation data of a ray may include one or more of:
[0159] one or more ray properties;
[0160] one or more translation parameters' values;
[0161] one or more translation instructions.
[0162] According to some embodiments, the one or more ray properties and / or the one or more translation parameters' values pertain to one or more of: ray coordinates; ray phase; ray wavelength, color and / or frequency; ray propagation direction, ray intensity, amplitude or energy; ray flux; ray polarization; ray optical path; ray trajectory; one or more interference patterns of the ray; one or more instructions for translating one or more properties of the ray; one or more deduced parameters of the ray; ray translation data for each of the at least two surfaces; ray translation data of one or more hit surfaces; ray translation data of a handshake surface.
[0163] According to some embodiments, the optical path of each ray may be determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
[0164] As mentioned above, at least one of the at least two surfaces is of the specific radiation setup. However, the at least one other surface of the at least two surfaces does not necessarily have to part of the specific radiation setup and can be an external surface in respect to the specific radiation setup such as an external screen, external detector / sensor, a surface of a simulated object, a mid-air surface of the ray, etc.
[0165] According to some embodiments, the customized translation data can be generated by using known characteristics and relative positions of one or more elements / surfaces / mediums of the specific radiation setup and relative location of at least one of the at least two surfaces.
[0166] The specific radiation setup may be real, virtual or a combination of both.
[0167] According to some embodiments, another action / step of checking whether the customized translation data requires adaptation to a specific simulation module may be carried out or required. In this case the customized translation data may require adapting the ray translation data of each ray thereof to the format / protocol(s) / values / properties / measures required by each specific simulation module that is to use the customized translation data.
[0168] Adapting the customized translation data to the specific simulation module that is to use the customized translation data for simulating of the behavior of the one or more simulated rays, may be done by creating an adapted customized translation data that is adapted especially to the specific simulation module.
[0169] In some cases, not all rays and / or not all ray translation data ( such as ray properties / translation instructions / parameter-values etc.) may require adaptation, in which case, only the parts of the ray translation data of the rays requiring adaptation may be changed / adapted to the specific simulation module's data format(s) requirements.
[0170] According to some embodiments, each customized (and optionally adapted) translation data may be generated e.g., by using one or more translation modules.
[0171] According to some embodiments, the generating of the customized translation data may include the steps of:
[0172] (i) obtaining an radiation setup data of a specific radiation setup;
[0173] (ii) processing the radiation setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
[0174] In some cases, one or more components of the specific radiation setup have spatial and / or translation symmetry, defining several different symmetrical parts of the specific radiation setup. In these cases, the generation of customized translation data of the specific radiation setup may be done by generating customized translation data of one part of the one or more rays passed through one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry of the specific radiation setup.
[0175] According to some embodiments of the method, the method may also include the step of conducting an approximation process for increasing the number of the one or more rays for enriching rays number and simulation detailing and quality, by using one or more approximation techniques. For example, one or more properties of at least one ray may enable deducing one or more corresponding properties of one or more additional rays, e.g., locatable adjacently to the at least one ray. The approximation process may also enable using a small number of rays, to receive details of a much larger number of rays.
[0176] According to some embodiments, the approximation process may be done by using one or more of:
[0177] (i) an interpolation process;
[0178] (ii) an Artificial Intelligence (Al) and / or machine learning based model;
[0179] (iii) ray differential methods.
[0180] According to some embodiments, the interpolation process may be based on one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation; Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation; Hermit interpolation.
[0181] According to some embodiments, the customized translation data of the specific radiation setup may be generated by using a cascaded / gradual technique, in which morethan two surfaces are defined, and ray behavior of the rays between each pair of surfaces is determined.
[0182] According to some embodiments, the method may also include updating the customized translation data.
[0183] According to some embodiments, the updating may be used for simulating of one or more changes in one or more of:
[0184] one or more properties of at least one element or surface of the specific radiation setup;
[0185] one or more properties of one or more of the at least two surfaces;
[0186] one or more properties of the one or more rays;
[0187] one or more sensor effects.
[0188] According to some aspects of disclosed embodiments, there is provided a translation module for assisting radiation behavior simulation. The translation module may be configured to obtain customized translation data associated with a specific radiation setup. The customized translation data may include ray translation data of each of one or more rays propagated between at least two surfaces, wherein at least one of the at least two surfaces is of a specific radiation setup. The translation module also enables one or more simulation modules, of one or more types, to receive customized translation data of different types or designs of radiation setups.
[0189] According to some embodiments, the customized translation data is used to translate one or more simulated rays from one of the at least two surfaces to another surface of the at least two surfaces.
[0190] According to some embodiments, the simulation of the behavior of the one or more simulated rays may be done for scene rendering, simulation of optical systems and changes made therein, simulation used for computer game designing, optical engineering, optical science, virtual production, diffraction optics, planning and running, etc.
[0191] According to some embodiments, each of the one or more simulation modules may be configured for visual and / or optical simulation.
[0192] According to some embodiments, each ray translation data of the customized translation data pertains to one or more of: one or more ray properties; one or more translation parameters' values; one or more translation instructions. The one or more ray properties and / or the one or more translation parameters' values may pertain to one or more of:
[0193] ray phase;
[0194] ray wavelength, color and / or frequency;
[0195] ray flux;
[0196] ray propagation direction, ray intensity, amplitude or energy; ray flux;
[0197] ray polarization;
[0198] ray radiation or optical path;
[0199] ray trajectory;
[0200] one or more interference patterns of the ray;
[0201] one or more instructions for translating one or more properties of the ray;
[0202] one or more deduced parameters of the ray.
[0203] According to some embodiments, the radiation or optical path of each ray may be determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
[0204] According to some embodiments, the customized translation data may be a table or an array associating each simulated ray of the one or more simulated rays, with a respective one or more of: ray properties, translation instructions, translation parameters, and / or deduced parameters.
[0205] According to some embodiments, the translation module is further configured for generating the customized translation data by using known characteristics and relative positions of one or more optical elements or surfaces of the specific radiation setup and relative location of at least one of the at least two surfaces. The generating of the customized translation data may, for example, include the steps of:
[0206] (i) obtaining an radiation setup data of a specific radiation setup;
[0207] (ii) processing the radiation setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
[0208] In some cases, one or more components of the specific radiation setup have spatial and / or translation symmetry, defining several different symmetrical parts of the specific radiation setup. In these cases, the generation of customized translation data of the specific radiation setup may be done by generating customized translation data of one part of the one or more rays passed through one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry of the specific radiation setup.
[0209] According to some embodiments, the specific radiation setup can be virtual and / or real.
[0210] According to some embodiments, the translation module may also be configured to check whether the customized translation data requires adaptation to a specific simulation module and enable adaption of the customized translation data to the specific simulation module via an adaptation module, which may be embedded in the translation module or in the specific simulation module.
[0211] According to some embodiments, the translation module may further be configured to conduct an approximation process for increasing the number of the one or more rays by using one or more approximation techniques, generating a larger number of rays passed through the at least two surfaces.
[0212] According to some embodiments, the approximation process may include using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it.
[0213] In some embodiments, the approximation process is done by using one or more interpolation protocols and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
[0214] According to some embodiments, the interpolation process may be based on one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation; Gaussian process regression; invers distance weighing;radial basis function (RBF) interpolation; natural neighbor interpolation; Hermit interpolation.
[0215] Additionally or alternatively, the approximation process may use a differential technique to generate the one or more additional rays.
[0216] According to some embodiments, the translation module may be configured to generate the customized translation data of the specific radiation setup, by using a cascaded / gradual technique, in which more than two surfaces are defined, and ray behavior of the rays between each pair of surfaces is determined.
[0217] According to some embodiments, the translation module and / or the simulation module may be configured for updating the customized translation data.
[0218] According to some embodiments, the updating may be used for simulating of one or more changes in one or more of:
[0219] one or more properties of at least one element or surface of the specific radiation setup;
[0220] one or more properties of one or more of the at least two surfaces;
[0221] one or more properties of the one or more rays;
[0222] one or more sensor effects.
[0223] Renderer Protocol with Optical Setup
[0224] According to some embodiments, in which the simulation module to be used is a renderer (rendering module / simulator / software / hardware), and the radiation setup is an optical setup such as a real or virtual camera, the render protocol may be designed to work with various rendering methods, including ray tracing, path tracing, rasterization, spectral, and / or monochromatic and / or RGB (red green blue) rendering, and / or any one or more rendering methods. Ray generation can be performed by the renderer software or derived from a predetermined translation table or function. For example, the renderer algorithm may utilize ray properties such as the coordinates and directions of "handshake" rays obtained from hit points on at least one of the at least two surfaces that is defined as a "handshake" surface, by using obtained customized translation data of the specific optical setup that includes, for example those ray properties.
[0225] A handshake surface may be defined as a flat or curved surface in space or over an element through which the rays pass or upon which the rays impinge. The handshake surface may be the surface from which the simulation begins and / or the one or more rays passing through or impinging the handshake surface may be the rays (in the form of the rays translation data) used for the accumulation process, which may be done by the simulation software / module (e.g„ Tenderer), The handshake surface may be one of the at least two surfaces used for generating the customized translation data of the radiation (e.g., optical) setup.
[0226] The points over a surface upon which the rays impinge or through which the rays pass, may be defined as "hit points". A hit surface may be defined as any of the two or more surface through which the rays pass or upon which the rays impinge. The handshake surface may also be one of one or more hit surfaces.
[0227] Amplitude and phase for each ray may be calculated where the results may be stored in an ordered table, or via any other customized translation data format / technique such as via a trained Al based model, which may be a full table with all ray translation data or a condensed version containing ray numbers and their corresponding amplitude and phase values.
[0228] During the accumulation phase, which can occur either during receiving part of the rays or after receiving all ray translation data (depending on the simulator type), the accumulation may be performed at the original generated ray location or after utilizing the translation data using the translation data of each ray such as one or more properties of each ray, such as calculated amplitudes, phases. As part of the accumulation procedure, the final accumulated rays at a certain defined location, such as pixel, voxel, triangle, tetrahedron, etc. are summed up per pixel, voxel, triangle, tetrahedron, etc. For color determination, a spectral function may be applied. For non-spectral Tenderers or rasterization methods, the data may be converted to RGB or gray scale values.
[0229] A crucial possible step is to adjust the location of the sensor’s (or sensors’) location relative to the virtual objects. This may be done by possible application of other transformations / translation on top of the main translation module (which may be referred to herein as a "transformer" or a "translator"). An example is the adjustment of a camera sensor’s location as a function of the distance of the object with a Photographic lens. Thisrequires a distance transformation that can be controlled by the user or calculated by the ray translator, to obtain a proper focus. Another example can be the change of the distance of one arm relative to the other arm in an interferometer.
[0230] In cases involving variable apertures or masks, or any other internal or external surface, such as adjustable lens stops, an additional stage is required. This involves checking the hit point of each ray on the aperture surface and modifying the ray translation data by multiplying the amplitude and phase (or any other ray properties) by the aperture factor, which can vary in grayscale levels or spectral response.
[0231] To ensure faithful integration with the optical setup, it may be essential to maintain consistency in coordinate systems and units. Efficient data structures should be implemented for quick access to customized translation data, and parallel processing can be considered for ray calculations and accumulations. This protocol can also be configured to be flexible and extensible to accommodate different optical setups or sequential optical setups and integrate new rendering techniques or optical effects.
[0232] According to some embodiments, the protocol's main process may include determination of at least one hit surface and one or more properties thereof such as whether the hit surface is flat or curved, texture of the surface, reflectivity and / or transparency properties of the hit surface, the size of the hit surface, the positioning of the hit surface, the number of pixels / voxels (or triangle, tetrahedron, etc.) and / or the size of each pixel / voxel (or triangle, tetrahedron, etc.), and the like. The one or more properties of the hit surface may also include its responsivity to any optical characteristics of the rays (such as transparency level, reflectivity level, polarization, phase, spectral properties of the ray(s) etc.).
[0233] Definition of aperture surface / s
[0234] One or more properties of the aperture surface may also be required such as aperture size, whether the aperture surface is flat or curved, texture of the aperture surface, reflectivity and / or transparency properties of the aperture surface, the size of the aperture surface, spectral absorption n properties, and the like.
[0235] According to some embodiments, optical setup mapping of a specific optical setup may include:
[0236] a. Generation of random outgoing rays O(c,p,d) from one side of the optical setup and (depends if it is a backward or forward propagation). These O:c is the startposition, O:p is the polarization state, and O:d is the ray direction is sampled (randomly or in an ordered way) following the necessary probability distribution so that aperture- driven depth of field, focal-length-driven field of view, distortion if enabled, and other optical parameters of the optical setup are correctly reconstructed over time. Each initial ray will / should be indicated.
[0237] b. These may propagate in the optical setup with a proper definition of the optical elements - which include full or partial knowledge of the optical parameters of the optical elements (such as wavelength-dependent refractive index, absorption properties, transparency and / or reflectivity properties, etc.), coating of the surfaces, scattering properties of the surfaces, etc.
[0238] c. These rays may propagate in the optical setup or part thereof, until they reach a predetermined surface (e.g., optical scene surface) that is defined. The location and direction of each ray may be recorded. The number of such surfaces can be defined (at least one). At least one specific surface may be defined as the “handshake” surface in respect to optical objects (such as the outer surface of a set of lenses) - where both hitpoints and direction points may be recorded (defined here as H(c,p,d)). Another possible surface is an aperture surface - where the hit points may also be recorded (defined here as S(c,p)). The propagation can be either from O(c,p,d) to H(c,p,d) or vice versa.
[0239] d. In the propagation process, new rays can be generated as a result of scattering, reflection, refraction or diffraction. These rays may continue to propagate via the optical setup but may preserve their original ancestor ray.
[0240] The results of the propagation may be preserved as a table, a pointer, or a function, or in any way that the linkage between the original ray and the hit rays may be preserved.
[0241] Enriching ray generation using an interpolation protocol:
[0242] Interpolation protocol can be done in any common interpolation method, such as bi-interpolation, cubic interpolation, random, or by machine learning algorithms.The essence here is to allow a more uniform output on the hit surface(s) that may serve the need of the Tenderer for a uniform biased / unbiased calculation.
[0243] Bilinear Interpolation provides smooth-out textures and creates more natural transitions between pixels / voxels on the hit surfaces. It's particularly effective for realtime applications due to its low computational cost. However, it may produce slightly blurry results compared to higher-order methods, especially when scaling up textures or interpolating between widely spaced data points.
[0244] Bicubic interpolation offers a step up in quality from bilinear interpolation, at the cost of increased computational complexity. In rendering, bicubic interpolation can produce sharper images and more accurate representations of curved surfaces. It's particularly valuable for high-quality offline rendering where processing time is less critical.
[0245] Random interpolation introduces a controlled element of randomness into the interpolation process. This method can be useful for creating natural-looking variations in textures or simulating certain material properties. Random interpolation can be especially effective for creating realistic noise patterns (not too perfect look), simulating natural phenomena like grass or clouds, or adding subtle variations to surfaces to enhance realism.
[0246] Spline Interpolation uses piecewise polynomial functions to create smooth curves or surfaces that pass through or near given data points. It's particularly useful for creating smooth, continuous surfaces in 3D modeling and rendering. Types of Spline Interpolation:
[0247] (i) B-splines: Offer local control and are computationally efficient.
[0248] (ii) NURBS (Non-Uniform Rational B-Splines): Provide more flexibility in representing both analytic and freeform shapes.
[0249] Spline interpolation can produce highly smooth results, making it ideal for creating organic shapes or fluid simulations in rendering.
[0250] Kriging (Gaussian Process Regression), a geostatistical method that interpolates values based on spatial correlation. It assumes that the distance or direction between sample points reflects a spatial correlation that can be used to explain variation in thesurface. In rendering, Kriging can be particularly useful for: terrain generation; creating realistic textures with spatial dependencies; interpolating scattered data points on complex surfaces.
[0251] Inverse Distance Weighting (IDW), a deterministic method that assumes that points closer to the interpolation location have more influence than those farther away. The interpolated values are calculated as a weighted average of nearby known points. This method can be effective for: quick approximations in real-time rendering; interpolating scattered data points on surfaces; creating smooth transitions between different textures or materials.
[0252] Radial Basis Function (RBF) Interpolation, uses a sum of radially symmetric functions to approximate multivariate functions. It's particularly useful for interpolating scattered data in multiple dimensions.
[0253] Applications in rendering include:
[0254] (i) Creating smooth transitions in volumetric data;
[0255] (ii) Interpolating color values in complex lighting scenarios;
[0256] (iii) Generating realistic skin or subsurface scattering effects.
[0257] Natural Neighbor Interpolation, a method that uses a weighted average of neighboring observations, where the weights are proportional to the "borrowed area" from a Voronoi diagram. It produces smooth interpolations and adapts well to irregularly spaced data.
[0258] Natural Neighbor interpolation can be beneficial for:
[0259] (i) Terrain rendering from irregular elevation data;
[0260] (ii) Creating smooth transitions in texture synthesis;
[0261] (iii) Interpolating scattered data points on complex surfaces.
[0262] Hermite Interpolation considers the values at data points and also their derivatives. This allows for more control over the smoothness and shape of the interpolated curve or surface. In rendering, Hermite interpolation can be used for:
[0263] (i) Creating smooth camera paths in animations;
[0264] (ii) Interpolating normals or tangents on surfaces for improved shading;
[0265] (iii) Generating realistic motion blur effects.
[0266] The most suitable interpolation method for interpolating between vectors with specific locations on an ongoing surface to another vector on a Hit surface would likely be Inverse Distance Weighting (IDW). The reason is its suitability for scattered data points: IDW is well-suited for interpolating between scattered data points, which aligns with the scenario of specific locations on surfaces.
[0267] Consideration of spatial relationships: IDW assigns weights to known sample values based on the distance, giving higher weights to nearby points and lower weights to distant points. This is particularly useful when dealing with surfaces where nearby points are more likely to be similar. Performance with dense sampling: IDW performs well when the sampling points are dense enough to capture local variations, which is often the case in surface-to-surface interpolation scenarios. Computational efficiency: Compared to more complex methods like kriging, IDW is computationally efficient, making it suitable for real-time or interactive applications. Flexibility: IDW can be adapted to include additional factors, such as incorporating elevation data as a third dimension to account for the influence of elevation on interpolation.
[0268] While other methods such as spline interpolation or kriging might provide smoother results in some cases, IDW offers a good balance between accuracy, computational efficiency, and flexibility for the specific scenario you described. It's particularly effective when you need to interpolate between known points on one surface to corresponding points on another surface, taking into account the spatial relationships between the points.
[0269] Machine learning approaches to interpolation have gained traction in recent years, offering powerful and flexible solutions for complex interpolation tasks. These methods can learn patterns and relationships in the data that may not be easily captured by traditional interpolation techniques. Neural networks, for instance, can be trained on existing high-quality renderings or real-world data to predict interpolated values. This approach can be particularly effective for handling non-linear relationships or interpolating between diverse data types. Machine learning-based interpolation canpotentially produce more realistic results, especially in scenarios with complex lighting, materials, or geometric details. When implementing these interpolation methods for rendering, for example, several factors should be considered:
[0270] (i) Performance vs. Quality: Bilinear interpolation offers speed but may sacrifice some quality, while bicubic and ML-based methods provide higher quality at the cost of increased computation time.
[0271] (ii) Data Characteristics: The nature of your hit surface data influences the choice of the interpolation method. Smooth, continuous surfaces may benefit more from bicubic interpolation, while complex, detailed surfaces might require ML-based approaches.
[0272] (iii) Rendering Context: Real-time applications like games may prioritize bilinear or optimized random interpolation, while offline rendering for film or high-end visualization might leverage bicubic or ML-based methods.
[0273] (iv) Edge Cases: each method handles boundaries, discontinuities, or areas with sparse data in a different manner. Some methods may require special handling in these cases to avoid artifacts.
[0274] (v) Adaptivity: The implementation of adaptive interpolation schemes that can switch between methods is based on local surface characteristics or rendering requirements.
[0275] The possible Machine learning approaches for interpolation between vectors on surfaces:
[0276] (i) Neural Networks: Neural networks, particularly Multi-Layer Perceptrons(MLPs) or Deep Neural Networks (DNNs), can be effective for this type of interpolation. They can learn complex, non-linear relationships between input vectors and their corresponding positions on surfaces. Key advantages: Can capture complex, non-linear relationships, Adaptable to high-dimensional data, Can generalize well to unseen data points.
[0277] (ii) Gaussian Process Regression (GPR): Also known as Kriging in geospatial contexts, GPR is well-suited for interpolation tasks, especially when dealing with spatialdata. Key advantages: Provides uncertainty estimates along with predictions, Works well with relatively small datasets, and Can incorporate spatial correlations naturally.
[0278] (iii) Support Vector Regression (SVR) can be effective for interpolation tasks, especially when dealing with high-dimensional data. Key advantages: Good generalization performance, Robust to outliers, Works well in high-dimensional spaces.
[0279] (iv) Random Forest Regression: While not traditionally used for interpolation, random forests can be adapted for this task and can handle non-linear relationships well. Key advantages: Can capture complex interactions between features, Robust to outliers and noise, Provides feature importance rankings.
[0280] (v) k-Nearest Neighbors (k-NN) Regression: Though simple, k-NN can be effective for local interpolation tasks. Key advantages: Simple to implement and understand, Works well when the relationship between vectors is locally smooth, No training phase required.
[0281] When implementing these methods for interpolation between vectors on surfaces one should consider at least one of the following required actions:
[0282] 1. Representing the input data appropriately, possibly including spatial coordinates and surface properties.
[0283] 2. Normalizing the input features to ensure all dimensions are treated equally.
[0284] 3. Using cross-validation to tune hyperparameters and avoid overfitting.
[0285] 4. Considering ensemble methods that combine multiple approaches for potentially improved performance.
[0286] 5. Evaluation of the model not just on the accuracy, but also on smoothness and physical plausibility of the interpolated results.
[0287] The choice of method may depend on the specific dataset characteristics, the complexity of the relationship between vectors, and the computational resources. Experimentation with different approaches is often necessary to find the best solution for your particular interpolation problem.
[0288] Renderer protocol with an optical setup:
[0289] The Tenderer protocol can be utilized for any Tenderer (ray trading / path tracing or rasterization methods, spectral / RGB / monochromatic, forward / backward).
[0290] Ray generation can be done by the Tenderer software or the predetermined transformer table / function.
[0291] The Renderer algorithm may use the coordinates and directions of the hit’s (handshake) rays as input to the renderer algorithm.
[0292] The renderer or optical simulation software may calculate the amplitude (and optionally also the phase) of each ray. It may add the value of the amplitude (and optionally the phase) to the ordered table (the full table or a smaller table) or machine learning-based approaches with the number of rays and the amplitude (and phase value).
[0293] The accumulation stage:
[0294] During or after receiving the translation data of the rays (where the timing of the accumulation stage may depend on the simulation type - it can be by either waiting for all the customized translation data of all the rays to begin accumulation or by performing a temporal dependent accumulation as the ray translation data of the rays arrive at an accumulation surface). The accumulation may be done at the translated location.
[0295] According to some embodiments, the final accumulated rays may be summed up per pixel / voxel. Either by waiting for all the rays or by performing a temporal dependent cumulative accumulation as the rays arrive at the accumulation surface.
[0296] Each summation may be sent to a spectral function to determine the color in case of spectral renderer or to RGB in case of non-spectral renderer or rasterization. The summation may also be sent to a thermal function in case of thermal detector.
[0297] In the case of the aperture surface or any other internal or external surface (such as in the case of lens stop that can vary the aperture radius or Fourier plane with a spatial light modulator in a 4-f system pulse shaper) - another stage may be required, involving, for example, revising the amplitude and phase or any other ray properties in the translator look-up-table or machine learning model. In the case of aperture stop - it may, for example, check the hit point of each ray on the stop aperture, and- the rayproperties / translation data in the customized translation data (e.g., the lookup table) may be multiplied by the factor of the aperture (that can be with various gray level or spectral). In the example of the spatial light modulator (SLM) located at the surface of the Fourier plane in a 4-f system, the phase or amplitude or polarization (or any other ray property) may be modified by the voltage that may be applied to each of the SLM’s pixel / voxel.
[0298] Preparation of surface distance translator (in a free-space media):
[0299] Translator distance location:
[0300] This translator is a supplement translator that can be used as part of the protocol. The most common use cases may include cases in which the location of the camera sensor and / or in the length of one arm in an interferometer is changed.
[0301] O^c^ p^ d) -> O2(c2,p2, d)
[0302] If the rays propagate in air (or any other constant medium) - the direction vector may remain the same. The coordinates may change linearly with the direction.
[0303] c2= + L
[0304] The polarization may change according to the polarization response to the medium. The phase may change in proportion to the optical distance.
[0305] In the propagation process, new rays can be generated as a result of scattering, reflection, refraction and / or diffraction. These may continue to propagate via the system but may preserve their original ancestor ray.
[0306] According to some embodiments, the results of the propagation may be preserved as a table, a pointer, a function, an equation one or more translation instructions, or in any way that the linkage between the original ray and the hit rays may be preserved. The results may be used to update the customized translation data, which may be in a form of a look-up table or ML-model, for example.
[0307] According to some embodiments, for each ray, the following ray translation data may be indicated in a form of a (lookup) table:
[0308] Ray number;
[0309] Origin ray indication (e.g., by origin ray number);
[0310] Wavelength of the ray (e.g., in nm units);
[0311] XYZ outgoing ray coordinates;
[0312] Outgoing ray direction;
[0313] XYZ New ray coordinates;
[0314] New ray direction;
[0315] Amplitude; and
[0316] Phase.
[0317] The following description of points 1 to 9 are given as an example of how a customized translation data of a specific optical setup can be formed:
[0318] Specific Optical Setup Mapping Protocol:
[0319] 1. Determination of Hit Surfaces:
[0320] a) Define at least one hit surface (flat or curved):
[0321] Specify surface properties:
[0322] (i) Dimensions
[0323] (ii) Resolution (number of pixels / voxels or pixel / voxel size / dimensions)
[0324] (iii) Optical characteristics: Transparency, Response to ray properties (polarization, phase, etc.), Material properties (e.g., BRDF, index of refraction); or
[0325] b) (Optional) define multiple hit surfaces if needed.
[0326] 2. Definition of Internal surfaces (such Aperture Surfaces):
[0327] a) Define internal aperture surface(s) (flat or curved):Specify surface properties:
[0328] (i) Dimensions;
[0329] (ii) Resolution (number of pixels / voxels and / or pixel / voxel size / dimensions);
[0330] (iii) Optical characteristics: Transparency, Response to ray properties (polarization, phase, etc.), Aperture shape and size.
[0331] b) Include information on geometrical behavior of the surface (e.g., in aperture surface it could be adjustable, fixed, etc. In SLM-based surface it can be if it is modified by voltage or thermal).
[0332] 3. Optical Setup Definition:
[0333] a) Define all optical elements of the specific optical setup, including:
[0334] b) Full or partial knowledge of optical properties, such as:
[0335] (i) Wavelength-dependent refractive index;
[0336] (ii) Absorption coefficient s).
[0337] c) Surface properties:
[0338] (i) Coating specifications;
[0339] (ii) Scattering characteristics.
[0340] d) Geometry and positioning of optical element(s) of the specific optical setup.
[0341] 4. Specific radiation Setup Mapping for a camera radiation setup that may include a stop aperture:
[0342] a) Ray Generation - Generate random outgoing rays O(c,p,d) from one surface of the specific radiation setup, whereas: c indicates start position, p indicates start polarization (optional), and d indicates start direction. The generation of the rays can be given also by the Tenderer of the simulation module / platform / algorithm.
[0343] b) Implement sampling based on probability distribution to account for:
[0344] (i) Aperture-driven depth of field;
[0345] (ii) Focal -length-driven field of view;
[0346] (iii) Distortion (if enabled);
[0347] (iv) Other camera optics parameters / properties.
[0348] c) Assign unique labels / identifiers to each initial ray.
[0349] 5. Ray Propagation:
[0350] a) Simulate ray propagation through the specific optical setup;
[0351] b) Record ray interactions at predetermined surfaces:
[0352] Optical scene surface(s);
[0353] (i) "Handshake" surface with Tenderer software;
[0354] (ii) Record hit-point and direction as H(c,p,d);
[0355] (iii) Internal (Aperture) surface.
[0356] c) Record hit-point, direction or polarization as S(c,p,d).
[0357] d) Handle ray splitting events (scattering, reflection, refraction, diffraction):
[0358] (i) Generate new rays as needed;
[0359] (ii) Maintain linkage to original ancestor ray - Follow generation of child rays from one or more reflect! ons / transmissions / diffractions / refractions on each surface.Apply Fresnel coefficients, scattering and absorption information for each ray along its trajectory. Keep track of each ray with its initial ray information.
[0360] 6. Data Storage and Management:
[0361] Implement a robust data structure to store propagation results:
[0362] Options: table, pointer system, functional representation;
[0363] Ensure efficient linkage between original and derived rays;
[0364] Include metadata such as:
[0365] - Ray properties (wavelength, intensity, polarization);
[0366] - Interaction history (surfaces hit, type of interaction).
[0367] 7. Interpolation Method(s):
[0368] a) Choose at least one appropriate interpolation method: Options for example: Inverse Distance Weighting (IDW), Spline Interpolation, Machine Learning approaches (e.g., Neural Networks, Gaussian Process Regression);
[0369] b) Implement the chosen method(s) to interpolate between one or more of:
[0370] (i) Vectors on the ongoing surface;
[0371] (ii) Corresponding vectors on the hit surface.
[0372] c) Consider factors such as:
[0373] (i) Spatial relationships between points;
[0374] (ii) Surface curvature and properties;
[0375] (iii) Computational efficiency requirements.
[0376] 8. Camera Location Transformer Implementation:
[0377] a) Define Camera Location Translator: Establish mechanisms for dynamically adjusting the sensor position based on object distance. This can be done by a Table, function, polynom, etc.
[0378] b) Ray Adjustment:
[0379] (i) Implement algorithms that modify the location of each ray based on the desired focus distance, ensuring accurate convergence on the sensor plane. This can include changes of coordinate, polarization, phase, and even wavelength as a function of the change of the camera sensor.
[0380] (ii) Distance Transformer Integration: Incorporate a distance transformer that allows for real-time adjustments of ray paths, dynamically optimizing the imaging system for varying object distances.
[0381] 9. Validation and Optimization:
[0382] a) Implement error-checking and validation procedures. Optimize for computational efficiency;
[0383] b) Ensure compatibility with the Tenderer software;
[0384] c) Provide options for adjusting sampling density and interpolation parameters.
[0385] Focusing on Objects at Varying Distances:
[0386] In an imaging system, the position of the camera sensor is crucial for achieving sharp focus on subjects located at different distances. High-quality lenses, such as the Zeiss Prime photographic lens, demonstrate that precise placement of thesensor ensures light rays converge accurately on the sensor plane. When an object is at a different distance from the lens, the sensor must be repositioned accordingly to ensure that the rays of light converge accurately on the sensor plane. This adjustment is essential because the focal point shifts with distance, requiring either mechanical movement of the sensor or optical compensation to maintain optimal image quality.
[0387] The necessity for adjusting the sensor location becomes particularly evident when dealing with objects across a range of depths. In traditional lens systems, this might be accomplished through zoom mechanisms or adjustments to the lens itself, but such solutions can sometimes compromise other aspects of image quality, such as distortion or vignetting. Consequently, a more innovative approach is needed, particularly in advanced imaging technologies.
[0388] According to some embodiments, a distance transformer may be used. The need to modify the sensor location becomes particularly apparent when capturing objects across a range of depths. Embodiments of the present invention, may address this challenge by focusing on changing the location of each ray of light prior to the accumulation process. By incorporating a distance transformer, one can dynamically adjust the paths of light rays to reflect the change in the sensor location. This flexibility allows for precise recalibration of each ray based on the desired focus distance.
[0389] Embodiments of this innovative methodology not only improves the versatility of imaging systems but also aligns with the growing demand for high-quality photography across diverse applications. By effectively tackling the challenges associated with sensor positioning and ray manipulation, our design empowers photographers to capture stunning images in various environments and at different distances, thereby pushing the boundaries of contemporary imaging technology.
[0390] The relationship between image distance and object distance is well established. This provides a framework for exploring and refining our imaging system's capabilities, ensuring accurate and high-quality rendering across various settings. By focusing on the manipulation of individual rays, we can achieve a more nuanced understanding of how to optimize image capturing in real-time.
[0391] According to some embodiments, the relation between the object's distance and the image distance may be included at least as part of the customized translation data (e.g. table).
[0392] Reference is now made to Fig. 1, which shows a flowchart, schematically illustrating a method for assisting radiation behavior simulation, according to some embodiments. This method may include at least the following steps:
[0393] obtaining customized translation data associated with a specific optical setup (step 11), the customized translation data comprises ray translation data of each of one or more rays propagated between at least two surfaces, wherein at least one of the at least two surfaces is of the specific optical setup; and
[0394] using the customized translation data of the specific optical setup for simulating behavior of one or more simulated rays passed through at least part of the specific optical setup (step 12).
[0395] According to some embodiments, the customized translation data may be used for a simulation of behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
[0396] It is noted that the term "obtaining customized translation data" used herein may refer to receiving customized translation data, generating customized translation data, and / or processing received customized translation data.
[0397] Reference is now made to Fig. 2, schematically illustrating a method for assisting radiation behavior simulation, according to some embodiments. This method may include at least the following steps:
[0398] obtaining optical setup data of a specific optical setup (step 21);
[0399] processing the obtained optical setup data of the specific optical setup, to generate a customized translation data of the specific optical setup (step 22);
[0400] using the generated customized translation data of the specific optical setup for simulating behavior of one or more simulated rays (step 23).
[0401] An optical setup may refer to any virtual and / or real optical setup such as, yet not limited to, at least one camera, at least one interferometer, at least one spectrometer orany other optical system / device / module that includes one or more surfaces and / or one or more optical elements.
[0402] For example, in cases in which the simulation renders scenes that have been captured by an optical setup such as a video camera, in order to seed virtual object within the captured scene, the customized translation data should be generated based on properties of the video camera being used. In this example, the customized translation data of the specific video camera assists the rendering of each scene (associated with the specific video camera e.g., filmed / captured by the specific video camera) by providing the simulation platform / module / software with translation information that allows the simulation platform / module / software to simulate behavior of rays as would be captured by the specific video camera in response to one or more seeded virtual objects.
[0403] It is noted that the term "virtual object" may refer to any type of object that is virtual such as elements, background, radiation source(s), etc., of any one or more surfaces of any one or more textures.
[0404] Each virtual object may be defined by the simulation platform / module / software by defining one or more physical properties thereof, such as its surfaces, texture(s) of each surface, reflectivity and / or transparency level of each surface or parts thereof, etc.; and / or by defining dimensions, size, geometric and / or position properties thereof, such as location in the scene, positioning / orientation etc.
[0405] The simulation platform / module / software may also define a coordinate system for placing each virtual object in the scene and for defining the actual space each virtual object takes.
[0406] According to some embodiments, the customized translation data may be storable as a ray file, which may be configured in a format of an array, a matrix or a lookup table, in which each ray is being associated with its respective ray translation data. The ray translation data of each ray may pertain to one or more of: one or more ray properties, one or more ray translation properties; one or more ray translation instructions.
[0407] According to some embodiments, one or more ray properties may pertain to one or more of: ray phase, ray intensity / power / amplitude, ray wavelength(s) / frequency(ies) or color, ray polarization, ray trajectory, ray's optical path between at least two surfaces, atleast one of which includes at least one surface of the specific optical setup, ray's direction, etc.
[0408] According to other cases, the radiation optical setup may be, for example a real or virtual interferometer including several optical elements such as lenses, beam splitter(s), light source(s), reflector(s), one or more optical sensors / detectors, etc., each having at least one effective surface that influences one or more rays as they pass therethrough and / or impinge thereupon. In these cases, the customized translation data may include translation information associated with how each ray
[0409] Reference is now made to Fig. 3, which is a flowchart schematically illustrating a method for assisting radiation behavior simulation, according to some embodiments. This method may include at least the following steps:
[0410] obtaining setup data of a specific radiation setup (step 31);
[0411] processing setup data of the specific radiation setup, to generate a first customized translation data of the specific radiation setup (step 32);
[0412] checking whether adaptation is required (step 33);
[0413] if adaptation is required - adapting the first customized translation data to generated an adapted customized translation data (step34); and
[0414] using the adapted customized translation data of the specific radiation setup for simulating behavior of one or more simulated rays (step 35); and
[0415] if adaptation is not required - using the first customized translation data of the specific radiation setup for simulating behavior of one or more simulated rays (step 36).
[0416] The adaptation may be done by changing / adjusting one or more parts of the ray translation data of each ray in the customized translation data, such as changing / adjusting values of one or more parameters, conversion of measuring units, translation of spectral data into RGB values, etc.
[0417] Reference is now made to Fig. 4, which shows a flowchart, schematically illustrating a process for generating customized translation data of a specific radiation setup, in the format of a trained model, according to some embodiments.
[0418] This process may include at least the following steps:
[0419] obtaining a data file, which is indicative of translation information of rays passed between at least two surfaces; and
[0420] train a machine learning (ML) model, using the obtained data file of the specific radiation setup, to form a trained model, serving as the customized translation data of the specific radiation setup.
[0421] According to some embodiments, the data file may include a lookup table of the rays indicative of information per each ray pertaining to translation(s) of each ray between the at least two surfaces. Since the lookup tables can include a massive volume of information, the transforming thereof into a trained model may dramatically reduce customized translation data size and dramatically accelerate computation time and saving of computation and storage resources.
[0422] According to some embodiments, the data file itself may be generated / created by the same module / platform that generates and trains the ML model and produces the trained model.
[0423] According to some embodiments, the data file may include information pertaining to a small number of original rays, where the ML model is trained to increase the total number of original rays number and determine per-ray ray translation data of each the added rays, such that the trained model, once obtained by a simulation module, can either generate these added rays during or before the accumulation of the final rays.
[0424] According to some embodiments, the ML model may be based on one or more algorithms such as neural network(s), and / or random forest based algorithm(s).
[0425] Reference is now made to Fig. 5, which is a block diagram, schematically illustrating how a translation module 51 is used for providing customized translation data of one or more radiation setups to one or more simulation modules such as simulation modules 52a, 52b and 52c, according to some embodiments.
[0426] The translation module 51 may obtain customized translation data of each specific radiation setup either by receiving the customized translation data that is premade by a different module or from a data repository or by generating customized translation data of each specific radiation setup, by processing receivable setup data of each specific radiation setup.
[0427] The obtained customized translation data may be directly sent to one or more simulation modules such as simulation modules 52a, 52b and 52c, or go through an adaptation process via an adaptation module 53 that is configured to:
[0428] receive each customized translation data;
[0429] check whether the customized translation data is adapted to requirements of each specific simulation module that requires the specific customized translation data; and
[0430] adapt the customized translation data to each simulation module requiring adaptation.
[0431] As mentioned above, the adaptation may include changing / adjusting one or more parts of the ray translation data of each ray in the customized translation data, such as changing / adjusting values of one or more parameters, conversion of measuring units, translation of spectral data into RGB values or grayscale values, etc.
[0432] The adaptation module 43 may be an external module or embedded in the translation module 51 or in the simulation module 52a, 452b and / or 52c.
[0433] Reference is now made to Fig. 6, schematically illustrating at least some of the modules of a translation module 60 that is configured to carry out generation of customized translation data files as well as adaptation of generated customized translation data files, according to some embodiments. According to some embodiments, the translation module 60 may include:
[0434] (i) a processing module 61 that is configured to obtain setup data of one or more types of radiation setups, process the setup data of each received / generated specific radiation setup to generate a corresponding customized translation data (e.g., in the form of a customized data file) for each specific radiation setup;
[0435] (ii) an adaptation module 62 configured to:
[0436] receive and / or retrieve customized translation data (customized data file) of each specific radiation setup;
[0437] receive or retrieve adaptation requirements of one or more simulation modules that require the customized translation data of the specific optical setup, and
[0438] adapt the customized translation data based on information of the customized translation data of the specific radiation setup and the simulation module(s) requiring the customized translation data, generating an adapted customized translation data (e.g., in a form of an adapted customized file) serving as the actual customized translation data to be used by the simulation module(s);
[0439] and
[0440] (iii) data repository 63 that is configured to retrievably store one or more of:
[0441] setups data;
[0442] adapted and / or non-adapted customized translation data (files);
[0443] simulation modules requirements information;
[0444] ray information.
[0445] According to some embodiments, each adapted or non-adapted customized translation data (e.g., customized file) may include a set of ray translation data per each ray, for example, in a format of a lookup table, a matrix, or an array. The ray translation data of each ray may include the specific information for translating properties of each ray or of translated properties of each ray, based on its respective optical path between at least two surfaces, at least one of which being part of the specific optical setup.
[0446] According to some embodiments, in order to generate the customized translation data of a specific optical setup, the processing module 61 may determine ray properties of each ray as it passes through the various optical elements of the specific optical setup, in order to be able to calculate / determine / estimate the properties of the ray when reaching one of the surfaces, such as when reaching a "handshake" surface disposed between the optical setup and a real or a virtual object. In some cases, this may require a gradual or cascaded process, in which ray properties such as trajectory / direction, optical path, amplitude / intensity / power distribution etc. are determined between internal pairs of surfaces of the specific optical setup.
[0447] The processing module 61 may also be configured to use any one or more of the aforementioned interpolation and / or ray differential techniques for increasing rays number, for improving simulation quality and smoothness.
[0448] Alternatively or additionally, the processing model 61 may be configured to generate a trained (machine learning based) model, by training a machine learning model of a specific radiation setup, e.g., by using radiation setup data and / or a pre-generated lookup table or array of the specific radiation setup. Using a trained model as the ultimate customized translation data of a specific radiation setup, may dramatically reduce file size, computation time and / or resources. The training of the machine learning model may be done using, for example, neural network and / or random forest based algorithm(s).
[0449] Reference is now made to Fig. 7, schematically illustrating a camera 70, serving as the specific radiation (optical) setup, without internal reflections, according to some embodiments. The camera has several optical elements and surfaces:
[0450] a first surface (surface A) 71, which is an input surface of the camera 70;
[0451] a second surface 76, which is the input surface of the sensor of the camera 60.
[0452] Between the two surfaces 71 and 76, one or more optical elements may be placed such as a stop aperture 73 and one or more lenses, such as lenses 72, 74 and 75.
[0453] In this case, the translation module may determine ray properties of rays passing from the first surface 71 to the second surface 76 taking into consideration all other surfaces and elements' effects over each ray passing therethrough.
[0454] Reference is now made to Fig. 8, schematically illustrating a camera 70 serving as a specific optical setup, with internal reflections, according to some embodiments. The camera 80 has several optical elements and surfaces:
[0455] a first surface (surface A) 81, which is an input surface of the camera 70;
[0456] a first lens 82;
[0457] a stop aperture 83;
[0458] a second lens 84, defining an intermediate surface 84a at an output surface thereof;
[0459] a third lens 85; and
[0460] a third surface 86, which is an input surface of the sensor of the camera 80.
[0461] In some embodiments, the determination of translation data of each ray may first be first calculated between the first surface 81 and the second surface 84a and then between the second surface 74a and the "handshake" third surface 76, in a two-stages manner.
[0462] According to some embodiments, the generation of the customized translation data of the rays, a first group of rays may be used, to determine one or more ray or translation properties of the rays. These rays may be real or virtual rays.
[0463] In some cases, the number of rays to be used it too small for achieving accurate and high quality translation properties determination. Therefore, the translation module may also support an enrichment stage in which the total number of rays is increased by generating new rays having properties that are determined based on an approximation process, using one or more approximation techniques.
[0464] For example the approximation process may include using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it. This may be done by using one or more interpolation protocols, differentiation techniques and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
[0465] The interpolation process may be based, for example, on one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation; Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation; Hermit interpolation or any other interpolation technique(s) known in the art.
[0466] Fig. 8 also shows how the optical (radiation) setup 80 can be handled for generating customized translation data thereof by dividing the camera radiation setup 80 into two separate optical setups: a first optical setup 1 and a second optical setup 2, according to some embodiments. The first optical setup 1 and the second optical setup 2 may be divided at the position / plane of the iris / aperture stop 83.
[0467] The translation module algorithm may first analyze properties of each ray at a hit point of the hit ray on the aperture stop 83 surface. With that, the algorithm can postselect the rays to be ignored in the accumulation phase. Once ray properties are calculatedat the hit surface (i.e., the aperture stop 83 surface), it may be easier to calculate the ray properties at the handshake surface.
[0468] Reference is now made to Figures 9A and 9B, showing a schematic illustration of a forward interpolation of rays (Fig. 9A) and a backward interpolation of rays (Fig. 9B), according to some embodiments.
[0469] Fig 9A shows how an additional (new) ray is formed at one surface (e.g., sensor input surface) of the optical setup indicated as surface C, and its ray properties are calculated / determined at one or more other surfaces of the optical setup indicated as surfaces B and A (including two interpolations one at an intermediate surface B and the next at the input surface A of the optical setup).
[0470] Fig. 8B shows how an additional (new) ray is formed before entering the optical setup via a first surface A, which may be an input surface of the optical setup and two interpolations are made: one at an intermediate surface B and another at another surface C of the optical setup, such as the input surface of a sensor of a camera optical setup.
[0471] Reference is now made to Figures 10A and 10B, showing a schematic illustration of a forward differentiation of rays (Fig. 9A) and a backward differentiation of rays (Fig. 9B), according to some embodiments, using one or more differential techniques.
[0472] Fig. 10A shows how multiple additional rays are formed by using one or more properties of a main ray, starting at one surface C of the optical setup, where the additional rays are adjacent to the main ray, according to some embodiments.
[0473] Fig. 10B shows how multiple additional rays are formed by using one or more properties of a main ray, starting before entering through / impinging another surface A of the optical setup, where the additional rays are adjacent to the main ray, according to some embodiments.
[0474] The one or more additional properties of each additional ray may include, for example, one or more of: ray directi on / trajectory within a defined 2D or 3D coordinate system, ray path, ray phase, ray polarization, ray amplitude / intensity / power, ray flux, ray spatial distribution, ray wavefront, ray profile, etc.
[0475] Reference is now made to Figures 11A and 11B, schematically showing how using forward and backward propagation of rays for generating customized translation data of a camera 100 optical setup, for rendering a scene, works, according to some embodiments. Fig. 11A shows a forward propagation scheme in which the rays are propagated from the objects 1-4 of a scene to the camera 100 optical setup; and Fig. 1 IB shows a backward propagation scheme in which the rays are propagated from camera 100 optical setup to the objects 1-4 of the scene, were the camera 100 optical setup includes a back sensor 101 and an optical set of one or more optical elements such as one or more focusing lenses, an iris, etc. According to these embodiments, the dependence of image distance versus object distance is known (defined by the customized translation data table).
[0476] For example, we have experimented with an optical setup 200 (Fig. 11 A) using Zeiss Tessar f2.8 50mm Lens and Luxcore Tenderer. The information on the Zeiss Tessar f2.8 50mm optical set 220 is shown in Fig. 1 IB, which includes lenses 221-223: first lens 221, second lens 222 and third lens 223 and an iris 224 located between the second lens 222 and the third lens 223. The camera sensor 210 may be locatable at a distance from the optical set 220.
[0477] Iris (stop) position relative to input vertex of the first lens: 12.095Iris (stop) radius: 7.187
[0478] This is an example of a pre-calculated table that is used to form the customized translation data of the specific camera 200 optical setup:table, in which the ray locations are recomputed for a new image surface, the surface on which the sensor resides and where the accumulation stage is performed. When the distance between the image plane and the last optical element changes, the focal position of scene objects shifts accordingly, altering which objects appear in focus. Correction table below: As the pre-calculated translation table was prepared for a specific image location, this procedure updates the ray’s new locations, thus changes the outcome of the accumulated image.
[0480] The below example describes additional information represented in the customized translation data table for spectral based or RGB-based rendering. For each optical element in the radiation setup, the translation data contains separate ray paths corresponding to different wavelengths (e.g., red, green, and blue or per general wavelength). Because the refractive index of each element varies with wavelength, a single input ray is translated into multiple wavelength-specific rays, producing a one-to- many mapping in the table.This approach may capture, for example, optical / spectral dispersion and chromatic effects, enabling accurate simulation of spectral-dependent propagation through the optical system.
[0481] Dealing with large translation files:
[0482] When dealing with high-definition footage and large-scale ray translation tables, for example, in physical optical systems, file size management becomes a critical concern. The ray transformation data for complex optical systems can easily reach terabytes in size, especially when mapping high-resolution imagery or video. This presents challenges for storage, processing, and real-time application of the optical transformations.
[0483] According to some embodiments, to address these issues, we perform one or more of the following actions / steps:
[0484] 1. Segmentation: Implementing an automatic file segmentation mechanism can break down large ray transformation tables into smaller, more manageable chunks. This allows for parallel processing and more efficient memory utilization.
[0485] 2. Al-driven compression: Leveraging Al and / or machine learning algorithms can significantly reduce file sizes while maintaining transformation accuracy. By training deep learning models on the ray transformation / translation data, it's possible to create compact neural networks that can replicate the mapping process with high fidelity.
[0486] 3. Adaptive resolution: Employing variable resolution techniques where areas of less optical complexity use lower resolution mappings, while complex regions maintain high detail.
[0487] 4. Sparse representation: Utilizing sparse matrix techniques to store only nonzero or significant transformation data points, dramatically reducing storage requirements for large, mostly uniform areas.
[0488] 5. Real-time generation: For some applications, it may be more efficient to generate the customized translation data on-the-fly using, for example, a graphical processing unit (GPU) acceleration, rather than storing massive pre-computed tables.
[0489] By incorporating one or more of these strategies into the physical optical setup 200, it becomes possible to handle the enormous datasets associated with high-definition footage while maintaining the precision and performance required for advanced optical applications.
[0490] Proof of Concept (PoC)
[0491] The collaboration between a translation module (herein "translator") and a Tenderer software seeks to validate the integration of advanced optical simulations with high-performance rendering algorithms. This PoC may demonstrate the feasibility and efficiency of the integration of a set of optical lenses (Photographic Prime Lens) in various scenes and environments. The process may include four phases, focusing on the integration of the translator table with Tenderer software’s rendering algorithms, testing the behavior of manipulating the focus distance with a digital twin of a Zeiss Tessar 50mm Lens, controlling the depth of focus by manipulating the radius of the aperture stop, and the observation of flare effect while using coated or uncoated surfaces.
[0492] In our internal PoC we have integrated the algorithm with the open source LuxCore Renderer’s software as well as commercial Renderer’s software. Also, we have integrated the scheme with other radiation simulations.
[0493] Stage 0: Preparation stage
[0494] This stage may include choosing one or more scene environments agreed by the translation module and / or by the simulation module (which may include a rendering module).
[0495] The first scene may be with several objects at different distances in a range of 30 to 150 cm.
[0496] The second scene may be a far-field scene and may contain several objects in a distance of l-10m with several light sources in the far field.
[0497] The third scene can be decided at a later stage.
[0498] Stage 1: Integration of the customized trnalation data in renderer softwareRendering Algorithm
[0499] Objective: The goal of this stage is to integrate the customized translation data (e.g., in a form of a lookup table or a machine learning based trained model) with the renderer software's rendering engine, ensuring interaction between the optical simulation and rendering software.
[0500] Procedure:
[0501] A. Data Exchange Mechanism between the customized translation data and a rendering software:
[0502] (i) Determination of Hit (handshake) surface:
[0503] A planar surface in the original camera location. It should include the size, dimensions and / or the number of pixels / voxels or the size / dimensions of each pixel / voxel. We performed it with variable detector dimensions, such as with a 256X256 or 512X512 or higher pixels image.
[0504] (ii) Generation of Ray Transformer Lens file (such as Photographic ZeissTessar 50mm lens) for generating / training a customized translation module with the specified format detailed below. The data may include the information on the camera origin rays on the camera (coordinate and direction) and the coordinate and direction of the hit handshake surface (the outer facet of an optical system). The ray data may include also the wavelength information.
[0505] (iii) Handshake Process - Synchronization protocol between ray translation data and rendering or simulation output.
[0506] The Tenderer algorithm may use the "handshake" rays' coordinates and directions as input to the scene or generate its own rays.
[0507] Amplitude Calculation - The Tenderer calculates the amplitude (and phase / polarization, if applicable) for each ray. Results may be stored in a table, which can be, a full table with all ray data or a condensed table / array / matrix / ML-process with ray properties and corresponding amplitude and / or phase and / or other ray properties ;
[0508] The accumulation phase may occur during or after receiving all ray data (depending on Tenderer type) and is performed at the original or translated ray location using calculated amplitudes (and phases). This may be done if each of the wavelengths;
[0509] Pixel / triangle / voxel Summation - Once accumulation is complete, the final accumulated rays are summed up per pixel / triangle / voxel;
[0510] Color Determination - For spectral Tenderers: Apply a spectral function to determine the final color. For non-spectral Tenderers or rasterization: Convert to RGB values;
[0511] Generate an image with the physical -based lens;
[0512] Ensure that every optical behavior simulated in simulation software, such as lens distortion or chromatic aberration, is accurately represented in the rendered image. Specific attention may be given to maintaining consistency in coordinate systems and units.
[0513] Expected Outcomes:
[0514] By the end of stage 1, the integration should result in an accurate translation of a single scene image and the representation of optical data in the Tenderer software rendering environment. This may lay the groundwork for further exploration of complex optical phenomena in rendered scenes.
[0515] Figures 12A and 12C show how an object image can change in response to manipulation of the focal length of the camera, where Fig. 12A is the image resulting without using the lens; and Fig. 12B is the image resulting using the lens.
[0516] Stage 2: Manipulating the focusing distance by changing the Focus length
[0517] Objective: In this stage, a variation of the ray translation file may performed to reflect the internal modification of the distance between the CMOS camera sensor to the first optical lens.
[0518] Procedure: In the current stage, several ray -translation files for different focus lengths may be used. For each ray, Tenderer software and translation module may follow the procedure detailed in stage 1.
[0519] Expected Outcomes: By the end of stage 2, the multiple scene images with different focus locations may be rendered.
[0520] Figures 13A and 13B show how the image of an object looks like at two different distances between the sensor and the lens: at 500mm distance (Fig. 13 A) and at 1000mm (Fig. 13B).
[0521] Stage 3: Digital Twin Behavior of Depth of Focus:
[0522] Objective: In this stage, we may focus on simulating and analyzing the depth of focus behavior in a digital twin environment, leveraging the combined strengths of the translation data simulations and Tenderer software’s rendering algorithms.
[0523] Procedure: A digital twin of an optical setup may be created. The optical lens apparatus may replicate the real-world elements, including the location of the stopaperture.
[0524] we can implement another innovative step that may further reduce rendering time and memory usage for scenarios involving variable apertures (e.g., adjustable lensstop). It may require a calculation modification in the translation ray data file that may include recording the location on the stop aperture surface. It may also require an additional stage in the handshake procedure with Tenderer software that may check the hit point of each ray on the aperture surface and determine if the ray amplitude (and optionally other properties such as phase, polarization, etc.) should be included in the accumulation step.
[0525] Expected Outcomes:
[0526] 1) Stage 3 demonstrates the ability to simulate real -world optical depth of focus with variable stop aperture sizes. The results from utilizing the ray translation data may be rendered in the Tenderer software’s environment, allowing for the visualization of how different focus planes affect image sharpness and clarity.
[0527] 2) Integration of depth-of-field effects into rendered scenes, ensuring optical accuracy in terms of blurring and Bokeh artifacts.
[0528] Figures 14A and 14B show object's image in two different aperture values: Fig. 14A shows the image of the object at 7.187mm aperture size; and Fig. 14B shows the image of the object at 2.5mm aperture size.
[0529] Stage 4: Observation of Flare on Coated and Uncoated Surfaces
[0530] Objective: The final phase focuses on the observation of flare effects in optical systems, specifically comparing coated and uncoated surfaces.
[0531] Procedure:
[0532] A. Simulation of Optical Coatings: various optical coatings may be simulated to understand their effects on minimizing or exacerbating flare. Different materials and coatings may be tested, including anti -reflective (AR) coatings and high-reflective (HR) coatings. Creating simulations that compare the behavior of light on coated versus uncoated optical elements (e.g., lenses and mirrors).
[0533] B. Rendering of Flare in Renderer software: Once the simulations are complete, the results may be rendered using the renderer software’s engine to visualize the flare effects in different environments, ensuring an accurate portrayal of light scattering and reflections. Testing in various lighting conditions to observe how flare manifests indifferent setups, including direct lighting, backlighting, and point sources. Comparing the visual impact of flare in coated and uncoated optics on image quality and overall scene fidelity.
[0534] Expected Outcomes: Stage 4 may conclude with the successful demonstration of how optical coatings affect flare in rendered scenes, providing valuable insights for optical design, especially in high-contrast or high-dynamic-range (HDR) imaging systems. Analyzing the intensity, angle, and spectrum of flare generated in each case.
[0535] Stage 5: Implementation of various detector effects and detector characteristics prior to the accumulation stage:
[0536] Objective:
[0537] This stage enables incorporating the physical and electronic characteristics of the imaging detector / system into the rendering pipeline before the accumulation of ray amplitudes (and optionally ray phases).
[0538] By modeling these specific effects at the translation / renderer interface, the final image may capture not only optical phenomena but also the real-world behavior of the detector.
[0539] The term "detector" may refer to any device / apparatus / system / module that includes one or more sensors, in this particular case, optical sensor(s).
[0540] Procedure:
[0541] A. Sensor Response Modeling
[0542] (i) Define pixel / voxel-level parameters such as quantum efficiency (QE) versus wavelength, fill factor, microlens geometry, and spectral filters (e.g., Bayer pattern or custom color filter arrays).
[0543] (ii) Introduce per-pixel / voxel gain and dark-current statistics to emulate temporal noise sources such as shot noise, read noise, and dark noise.
[0544] B. Charge-Collection and Sampling
[0545] (i) Implement pixel-area / voxel-volume integration of incident ray energy, accounting for charge-diffusion kernels and intra-pixel / voxel point-spread functions.
[0546] (ii) Simulate rolling- or global-shutter timing, exposure time, and frame-rate dependent effects (e.g., motion blur, skew).
[0547] C. Electronic Conversion
[0548] (i) Apply analog-to-digital conversion with selectable bit depth (e.g., 12- or16-bit), quantization noise, and gain mapping.
[0549] (ii) Include optional high-dynamic-range (HDR) processing or multi-exposure merging for sensors that support it.
[0550] D. Interface With Ray Translation Data
[0551] (i) For each ray reaching the handshake surface, weight its amplitude and phase by the wavelength-dependent QE and pixel / voxel-specific response before passing to the Tenderer’s accumulation buffer.
[0552] (ii) Store the sensor-modified amplitude / phase values in the ordered translation table so that downstream accumulation operates on detector-realistic data.
[0553] Expected Outcomes:
[0554] (i) Generation of rendered images that accurately represent sensor-dependent phenomena such as color balance shifts, fixed-pattern noise, dark-frame signatures, and photon- shot noise.
[0555] (ii) Ability to benchmark different detector technologies (CMOS vs. CCD, rolling vs. global shutter) within the same optical design, enabling system-level optimization of both optics and sensor.
[0556] (iii) Extension of the translation table so that sensor characteristics are fully integrated prior to the accumulation and pixel / voxel-summation stages.
[0557] Figures 16A-16D show how an image can be simulated / rendered using the customized translation data for achieving optical setup effects of an optical radiation setup such as a camera with different aperture sizes / radii. Fig. 16A shows an image of a scene using a stop aperture with an aperture radius of 1mm; Fig. 16B shows an image of a scene using a stop aperture with an aperture radius of 3.5mm; Fig. 16C shows an image of a scene using a stop aperture with an aperture radius of 7.187mm and Fig. 16D shows the scenario image without simulation of the stop aperture.
[0558] These exemplary images shown in Figures 16A-16D show how changing the size (radius) of the aperture of a stop aperture of the (optical) radiation setup can provide a more real and less "ideal" image of the scenario image, when using the customized translation data of the actual (optical) radiation setup being used. This may allow the rendering (simulation) module to be able to control setup properties such as depth of field (aperture size), focusing properties and the like.
[0559] Conclusion:
[0560] This proof of concept (PoC) validates our capabilities to generate customized translation data (files) with Tenderer software’s rendering algorithms across several key areas: system integration, variation of focus distance and depth of focus in a digital twin, flare observation on coated / uncoated surfaces, and sensor’s effects. Successful completion offers advanced tools for realistic optical design and rendering.
[0561] Optimization Considerations can complement the current PoC. This may include the implementation of efficient data structures for quick access to ray information, parallel processing for ray calculations and accumulations, Optimize memory usage, especially for large numbers of rays, and incorporating machine learning algorithms.
[0562] The protocol used in some embodiments disclosed herein, has the potential to significantly save time when adding lenses to a scene, especially in complex optical systems or when frequent changes are needed, for example, for the following reasons:
[0563] 1. Modular Approach: The protocol separates the system simulation from the main rendering process. This modularity allows for easier modification and experimentation with different lens configurations without needing to re-render the entire scene each time.
[0564] 2. Pre-computation: By pre-computing the ray paths through the optical system is done for creating a transformer function or table (i.e. customized translation data) that can be quickly referenced during the actual rendering process. This can greatly reduce real-time computation requirements.
[0565] 3. Flexibility in Lens Modifications: Once the initial setup is complete, adding or modifying lenses becomes a matter of updating the optical setup mapping. This is likely faster than recalculating the entire scene render for each lens change.
[0566] 4. Efficient Handling of Complex Optics: The protocol allows for detailed simulation of complex optical phenomena (such as chromatic aberration, distortion, or specific lens coatings) without burdening the main rendering engine with these calculations.
[0567] 5. Interpolation Benefits: The inclusion of an interpolation method can further speed up the process by allowing for accurate estimations between known data points, potentially reducing the number of rays that need to be fully simulated.
[0568] 6. Reusability: Once a particular lens system is mapped, it can be reused in multiple scenes or projects without needing to be recalculated each time.
[0569] 7. Parallel Processing Potential: The ray tracing through the optical setup for generating the customized translation data of the specific optical setup can potentially be parallelized more easily than a full scene render, allowing for efficient use of multi-core processors or GPUs.
[0570] 8. Focused Optimization: By separating the optical setup simulation from the rendering process, you can optimize this specific part of the process without needing to modify the main rendering engine.
[0571] It is noted that there might be some initial setup time required to implement this protocol. The timesaving would be most noticeable in scenarios where:
[0572] The same or similar lens setups are used across multiple simulation / rendering projects;
[0573] Complex optical setups are being simulated;
[0574] Multiple iterations of lens designs are being tested;
[0575] Real-time or near-real-time adjustments to the optical system are needed;
[0576] In these cases, the initial investment in setting up the protocol could lead to substantial time saving in the long run, especially for projects involving frequent lens changes or complex optical simulations.
[0577] Symmetry Considerations in Optical Setups:
[0578] In spherically symmetric optical systems, for example, the optical properties of the optical elements are identical in all directions from the center of symmetry. This symmetry allows for significant simplification in ray translation mapping for generation of ray translation data of the customized translation data of the optical setup. The generation process may include one or more of:
[0579] 1. Cross-sectional Mapping: For a spherically symmetric optical setup, ray transformation mapping (i.e. the ray translation data of each ray) is sufficient for a single cross-section. This 2D mapping can then be rotated around the optical axis to generate the full 3D transformation.
[0580] 2. Reduced Computational Load: By exploiting this symmetry, the computational requirements for generating the full ray transformation table are drastically reduced. Instead of mapping the entire 3D space, only a 2D slice needs to be calculated.
[0581] 3. Rotational Invariance: The spherical symmetry ensures that the optical properties remain invariant under rotations about the center. This property can be used to validate and refine the mapping results.
[0582] 4. Data Compression: The symmetry allows for significant data compression in storing the ray transformation table. Only the data for a single cross-section needs to be stored, along with parameters defining the symmetry.
[0583] 5. Real-time Generation: For applications requiring real-time processing, the full 3D transformation can be generated in near real-time from the 2D cross-sectional data, reducing storage requirements and potentially improving system responsiveness.
[0584] By incorporating these aspects of spherical symmetry into the ray transformation mapping process, the efficiency and practicality of the physical optics lens system can be significantly enhanced. This approach not only reduces computational andstorage requirements but also provides a robust framework for handling complex optical transformations in spherically symmetric systems.
[0585] Other Types of Symmetries in Optical Setups:
[0586] While spherical symmetry offers significant advantages, other types of symmetries can also be exploited such as:
[0587] A. Cylindrical Symmetry - Common in fiber optics and certain lens designs, cylindrical symmetry allows for simplification along one axis. The ray transformation can be computed for a 2D cross-section perpendicular to the axis of symmetry and then extended along that axis.
[0588] B. Planar Symmetry - Systems with mirror symmetry across a plane can benefit from computing transformations for only half the space and mirroring the results.
[0589] C. Rotational Symmetry - Systems with rotational symmetry around an axis (but not full spherical symmetry) can still benefit from reduced computational needs, though not as extensively as spherically symmetric systems.
[0590] D. Translational Symmetry - In systems with repeating elements, such as certain types of metamaterials or photonic crystals, the transformation for a single unit cell can be replicated to cover the entire system.
[0591] E. Scale Invariance - Some optical systems exhibit similar behavior at different scales. This can be used to extrapolate transformations across different size regimes. The scale in some of the renders’ implementation is normalized, thus, in fact with scale invariance.
[0592] By identifying and leveraging these various types of symmetries, the ray transformation mapping process can be optimized for a wide range of optical systems beyond those with spherical symmetry. This approach not only enhances computational efficiency but also provides insights into the fundamental properties of the optical system, potentially leading to novel designs and applications in the field of physical optics.
[0593] One or more of several methods may be used in order to reduce the size of the customized translation data (the lookup table / map) such as one or more of:
[0594] 1. Ray Differentials for Map Compression
[0595] (i) Baseline technique: In rendering, ray differentials carry the local derivatives cd / fx, fd / cy, of a central ray with respect to the sensor / sample coordinates. They allow prediction of how neighboring rays would propagate without explicitly tracing them. Using this technique can dramatically reduce the number of rays and allow for smoothness. Instead of storing thousands of neighboring rays around each pixel / sample, one can compute a small set of central rays (e.g., 10-20 per pixel / voxel / tile) and store their differentials. At runtime, the differentials may allow reconstruction of the directions and optical path variations of nearby rays, so the local “fan” of rays may be covered continuously instead of not discretely. This means that the lookup table can be much smaller (e.g. two-three order of magnitude fewer entries), while still enabling smooth transitions between rays (important for avoiding artifacts in detector integration). We note that the ray differential in the context of ray translation may need to be more complex and require handling ray differential of incoming rays and ray differential of outgoing rays.
[0596] 2. Interpolation between Rays at Surfaces
[0597] Concept: Between two stored rays that intersect an optical surface, intermediate rays can be interpolated to estimate transmission, reflection, diffraction and / or refraction outcomes. The Benefit is that it reduces the number of explicitly stored rays per surface, such as from a handshake surface to sensor surface or vice versa or by using the cascaded interpolation described above e.g., in case an iris / stop aperture element is included in the optical setup.
[0598] Method: Polynomial interpolation (e.g., bicubic splines) in surface coordinates.
[0599] - Maintain Jacobians to preserve radiometric correctness;
[0600] - Verify interpolation accuracy against direct ray -traced “ground truth".
[0601] Combining surface-wise interpolation with a global translation mapping allowing both map compression and on-demand ray generation consistent across all surfaces, not just the input / output pair.
[0602] 3. Al / Machine learning based trained models as customized translation data
[0603] Concept: Train a neural network (small MLP, CNN, or transformer) to approximate the mapping from “handshake surface” (input) to the sensor (output) or for any other surface-to-surface.
[0604] For example, we have trained a machine learning model that can take as input (x,y,u,v,X) at the input surface and output the corresponding exit ray or detector location / intensity.
[0605] Benefit:
[0606] the trained ML model acts as a compressed, continuous surrogate for the customized translation data.
[0607] Much smaller memory footprint than a dense lookup table.
[0608] Provides smooth interpolation automatically.
[0609] 4. Sensor Effect Layer
[0610] Concept: After the rays are translated to the detector plane, a “sensor effect layer” applies realistic sensor responses.
[0611] Features included:
[0612] A. Physical Entrance Layer
[0613] Cover glass: thickness, AR coatings, birefringence effects.
[0614] IR / UV cut filters: wavelength-dependent transmission.
[0615] Microlens array: funnels light into pixel wells; shape (hemispherical, cylindrical), fill factor, crosstalk control.
[0616] Polarization filters: wire-grid or nanopattem, for polarization-sensitive sensors.
[0617] Diffractive structures: for spectral splitting or field shaping.
[0618] B. Pixel Aperture / Active Area
[0619] Aperture shape: square, rectangular, rounded; defines angular acceptance.
[0620] Pixel fill factor: ratio of sensitive area to total pixel area.
[0621] Color filter array (CFA): Bayer, Quad-Bayer, RGBW, multispectral (extra bands), polarization CFA.
[0622] Stacked color filters: interference coatings instead of dyes, k-selective.
[0623] Angle dependence: shift of effective QE with incident angle (esp. at high f / #)
[0624] Photoelectric Conversion Layer
[0625] - Photodiode structure: CMOS pinned photodiodes (PPD), Back-side illuminated (BSI) vs. front-side, Deep trench isolation (DTI) to reduce crosstalk.
[0626] - Quantum efficiency (QE): spectral response curve.
[0627] - Polarization dependence: anisotropic absorption in semiconductor stack.
[0628] - Thickness variations: depth influences red / IR efficiency.
[0629] C. Charge Transport & Readout
[0630] - Charge transfer efficiency (CTE) in CCDs.
[0631] - CMOS column amplifiers with per-pixel source followers.
[0632] - Global vs rolling shutter.
[0633] *Global = all pixels exposed simultaneously.
[0634] - Rolling = line-by-line with time skew.
[0635] Dual-gain pixels: multiple conversion gains for HDR.
[0636] Well capacity: defines saturation and dynamic range.
[0637] D. Noise & Imperfections
[0638] - Shot noise (Poisson statistics).
[0639] - Read noise (amplifier, ADC).
[0640] - Dark current: thermal generation; temperature dependence.
[0641] - Pattern noise.
[0642] - PRNU (photo-response non-uniformity).
[0643] - DSNU (dark-signal non-uniformity).
[0644] - Blooming / crosstalk: electrons leaking into neighbors.
[0645] - Fixed pattern noise (FPN): column offsets, row noise.
[0646] - Reset noise / kTC noise: from capacitor reset.
[0647] E. On-Sensor Processing
[0648] - Pixel binning / sub-sampling.
[0649] - Correlated double sampling (CDS): reduces reset noise.
[0650] - ADC per column or per pixel.
[0651] - Embedded HDR: dual integration times per pixel.
[0652] - Event-based readout (DVS / SPAD arrays).
[0653] F. SPADs (single Photon Avalanche Detectors):
[0654] - Geiger mode avalanche.
[0655] - Timing jitter, dead time, after-pulsing.
[0656] - Time-correlated single-photon counting (TCSPC).
[0657] G. Specialized Features
[0658] - Back-thinning: improves QE at short wavelengths.
[0659] - Stacked sensors: logic layer beneath photoelectric layer.
[0660] - Curved sensors: to match optical focal surface.
[0661] - Spectral stack sensors: multiple photodiodes stacked by depth (RGB separation by absorption depth).
[0662] - Polarization-resolving pixels: nanowire grid on each pixel, oriented differently.
[0663] H. SPAD arrays with microlenses for LIDAR / correlation detection.
[0664] I. Quantum dot filters for narrowband or tunable color.
[0665] J. Accumulation & Rendering-Specific Layers
[0666] - Radiance accumulation (incoherent): summing photons — > pixel wells.
[0667] - Field accumulation (coherent): summing complex amplitudes — interference / hol ography .
[0668] - PSF integration: per-pixel convolution with optical PSF.
[0669] - Motion / shutter model: rolling shutter artifacts, temporal integration.
[0670] - Temperature model: dark current and noise scaling with °C.
[0671] - Defective pixels model: hot pixels, stuck pixels.
[0672] Benefit: Moves beyond pure geometric optics and integrates the detector physics directly into the transformation operator.
[0673] Adding a sensor-aware layer to the precomputed customized translation data so that the final detector signal includes physical imaging artifacts and non-idealities provides an enhancement to the rendering / simulation quality.
[0674] According to some embodiments, the sensor(s) may be described as a multisub layer accumulation system where each layer has distinct optical / physical transformations / translations depending, for example, on one or more of:
[0675] 1. Optical stack (cover glass, micro-lens, filters);
[0676] 2. Pixel / voxel aperture and CFA;
[0677] 3. Photoelectric conversion layer (QE, spectral, polarization);
[0678] 4. Charge transport & readout layer (shutter, gains);
[0679] 5. Noise / error layers (shot, read, PRNU, DSNU);
[0680] 6. On-sensor computation (CDS, binning, HDR).
[0681] 7. Special structures (curved, stacked, polarization, SPAD);
[0682] 8. Accumulation modes (incoherent radiance vs coherent amplitude).
[0683] Disclosed embodiments may be implementable for many simulations and / or optical setups, such as for any one or more of:
[0684] - imaging setups;
[0685] - Spectrometers: maps entrance slit surface — grating / detector plane, including wavelength dispersion and polarization.
[0686] - Interferometers (such as Michelson, Mach-Zehnder, Fabry-Perot): operator captures ray splitting, path-length differences, and recombination, enabling coherent accumulation at the interference plane.
[0687] - Microscopes: operator maps pupil plane — image plane or Fourier plane, with high NA aberrations included.
[0688] - Nonlinear / quantum optics setups: operators can include phase-matching conditions in crystals or down-conversion geometries.
[0689] - Freeform / diffractive elements: operator includes diffraction gratings, metasurfaces, and DOE-based beam shaping.
[0690] Mapping from Any 2D Surface to Any 2D Surface
[0691] The translation module may be defined between arbitrary surfaces - not fixed input / output planes. Examples:
[0692] (i) Aperture stop — image plane (classic case).
[0693] (ii) Entrance pupil — Fourier plane (diffraction pattern simulation).
[0694] (iii) Slit surface — detector array (spectroscopy).
[0695] (iv) Beam splitter output surface — recombination surface (interferometry).
[0696] (v) Intermediate relay surface — > final sensor (multi-element system).
[0697] Surfaces can be inside the optical setup (e.g., internal stops, intermediate foci, holographic plates, etc.) or outside the optical setup (e.g., external detector, free-space projection plane).
[0698] The translation module can be adapted to any one or more simulations optionally also in a modular manner.
[0699] Volumetric & Participating Media
[0700] The customized translation data may not be restricted to optical setup only only translations. It can also embed or interface with one or more of:
[0701] Volumetric scattering (e.g., caused by fog, tissue, atmosphere, etc.):
[0702] - Store translation data between entry surface — exit surface of a medium.
[0703] Apply functions such as Henyey-Greenstein, Mie, Rayleigh.
[0704] Absorption / emission media: add wavelength-dependent transmittance and fluorescence.
[0705] Null-collision / differential phase mapping: allows efficient inclusion of random scattering events while retaining precomputed surfaces as anchor points.
[0706] The method may supports both optical setup internal elements / volumes and free-space volumetric phenomena in a unified pipeline.
[0707] This may provide a Leap in Generality as Existing LUT methods (Ray-LUT, polynomial optics) are only camera-lens specific, fixed entrance — image mapping. Our map may be a general-purpose ray translator, applicable to any pair of surfaces, inside or outside any optical setup.
[0708] According to some embodiments, for storing property related data such as amplitude, phase, polarization, and Jacobians, the translator may support both radiometric and wave-optics accumulation. This makes it useful not just for rendering modules but also in scientific simulation of optical setups such as spectrometers, interferometers, microscopes, volumetric imagers and the like.
[0709] Surface Movement Step (e.g., Refocusing / Shifting the Accumulation Plane):
[0710] for every precomputed ray one or more of the following properties may be stored:
[0711] - Exit position (on the output surface);
[0712] - Exit direction vector;
[0713] - Amplitude and phase (complex field);
[0714] - Polarization state.
[0715] - Jacobian and / or Etendue factor.
[0716] If the user wants to place the accumulation plane (e.g., detector, analysis surface, holographic plate, etc.) at a different location along the ray path, we do not need to re-trace through optics. Instead, the rays may be re-propagated forward or backwardin free space, where, for example, New point = old intersection point + (ray direction x distance shift). This translation technique may be valid as long as no additional optical elements exist between the old and new surfaces.
[0717] The Advantages may include:
[0718] - No retrace cost: we don’t run Snell’s law again or touch the precomputed operator, for example.
[0719] - Differential handling: because we have ray direction + Jacobian, you can adjust local densities correctly after shifting.
[0720] - Phase-correct: coherent simulations include the added propagation phase, so interference / holography remains valid.
[0721] - General: works for incoherent radiance or coherent amplitudes equally.
[0722] Use cases:
[0723] Refocusing: moving the detector plane closer / farther from the image plane.
[0724] Fourier vs image plane: sliding between conjugate surfaces.
[0725] Phase accumulation: update the ray’s phase term by A(|)=k-AL (with k=27t / k, AL = path difference).
[0726] Depth scanning in volumetric imaging: simulate OCT or light-sheet scanning by shifting accumulation planes.
[0727] Virtual re-projection: move outside the optics to project rays into free space.
[0728] The accumulation surface may be translated relative to the optical setup, wherein rays leaving the precomputed operator are linearly propagated along their stored direction vectors to new intersection locations on the translated surface, with corresponding update of path length, phase, and Jacobian, provided that no intervening optical element is present therebetween.
[0729] Integrated detector pipeline: precomputed map + tile PSFs / OTFs + sensor model (QE, micro-lens, pixel / voxel aperture) with guaranteed energy closure — i.e., a full precompute — transform — sum architecture rather than just a fast lens pass.
[0730] Optional polarization: per-path Mueller factors baked into the map (off by default).
[0731] Fig. 17 shows one example of customized translation data (lookup) table format, according to some embodiments. The table may include, for example, per each ray, values or factors for translating various properties of the ray between two surfaces of the specific optical setup, such as:
[0732] - from which original ray the ray originates;
[0733] - spectral property of the ray (wavelength);
[0734] - coordinates and direction of the ray at the first surface;
[0735] - coordinates and direction of a new ray at the second surface; and
[0736] - amplitude and phase of the ray.
[0737] Fig. 18 shows an example of a spectrometer 300 using a multispectral light source 30, where the spectrometer 300 serves as the specific optical setup, for generating customized translation data of rays passed through the spectrometer 300, according to some embodiments.
[0738] The spectrometer 300 may include the following components:
[0739] a diffraction grating mask / element 301 positioned and configured for spatial spectral dispersion of light;
[0740] one or more reflectors such as reflectors 302 and 307;
[0741] one or more diffractive elements such as a focusing or a collimating lens 306;
[0742] a dichroic mirror 303, positioned and configured to deflect rays of one or more spectral properties (wavelengths) and transmit rays of one or more other, different spectral properties (wavelengths), in this optical design, the dichroic mirror 303 is located after the first reflector 302 to receive spatially differentiated light from the diffraction grating element / mask 301; and
[0743] at least one optical sensor such as sensor 308, which may be a pixelated sensor for enabling detecting one or more rays of a specific wavelength or narrow wavelength band at a different area thereof comprising one or more pixels or voxels.
[0744] According to some embodiments, to generate customized translation data of the specific spectrometer 300, a translation module may use the cascaded technique by dividing the spectrometer's 300 layout into several parts defining several surfaces:
[0745] a first surface 301a, which is located at an entrance point of the rays as they enter the spectrometer 300;
[0746] a second surface 301b, which is located somewhere along the path of rays that have been transmitted by the dichroic mirror 303;
[0747] a third surface 301c that is located along the path of rays that have been deflected by the dichroic mirror 303 - another optical sensor 305 may be placed along the plane of the third surface 301c; and
[0748] a fourth surface 30 Id located at an exit surface from which the spectrally spatially differentiated rays are outputted and where the optical sensor 308 is located.
[0749] According to some embodiments, the focusing / collimating lens 306 may be positioned and configured to reduce spatial distribution of the spectrally differentiated rays emanating from the dichroic mirror 303. According to some embodiments, the additional sensor 305, located before the focusing / collimating lens 306, may enable better spectral separation of ray / ray clusters for improving the overall accuracy of the spectrometer 300.
[0750] To generate the customized translation data of the spectrometer 300, the translation module (not shown) may first determine one or more ray properties and raypath between the first surface 301a and the second surface 301b; then between the second surface 301b and the third surface 301c and then between the third surface 301c and the final fourth surface 301d, to output a lookup table customized translation data if the spectrometer 300, which may assist one or more simulation modules to simulated ray behavior in the specific spectrometer 300.
[0751] Fig. 19 shows an example of an interferometer 400 using a light source 40, where the interferometer 400 serves as the specific optical setup, for generating customized translation data of rays passed through the interferometer 400, according to some embodiments.
[0752] The interferometer 400 may include the following components:
[0753] one or more beam splitters such as a first beam splitter 402 and a second beam splitter 407;
[0754] one or more reflectors such as a first mirror 403 and a second mirror 406;
[0755] one or more coherent sensors such as a first sensor 408 and a second sensor409; and
[0756] one or more optical elements such as optical element 405.
[0757] The interferometer 400 may be designed to measure one or more ray properties of rays that have been interfered with one another via the interferometer 400 such as changes in phase and amplitude of rays interfered by the interferometer 400.
[0758] The entering light 40 is split by the first beam splitter 402 such that each light portion may travel via a different optical path via the reflectors 403 and 406 forming two optical paths: a first optical path and a second optical path. The split light is then recombined / interfered at the second beam splitter 407, which splits the interfered beams into two light portions to be measured by the two coherent sensors 408 and 409.
[0759] The translation module (not shown), may divide the interferometer 400 system into four different sections for performing a cascaded / gradual translation of the entering (e.g., generated) rays / light:
[0760] a first surface 401a, which is located at an entrance of the interferometer 400;
[0761] a second surface 401b, which is located along one of the first optical path of the light portion that has exited the first beam splitter 402;
[0762] a third surface 401c, which is located along one of the second optical path of the light portion that has exited the first beam splitter 402;
[0763] a fourth surface 401d located along a plane of the first sensor 408; and
[0764] a fifth surface 401e located along a plane of the second sensor 409.
[0765] To generate a customized translation data of the interferometer 400, the translation module (not shown) may:
[0766] determine one or more ray properties and ray path between the first surface 401a and the second surface 401b,
[0767] then determine one or more ray properties and ray path between the second surface 401b and the third surface 401c,
[0768] determine one or more ray properties and ray path between the third surface 401c and the fourth surface 40 Id, and
[0769] Finally determine one or more ray properties and ray path between the fourth surface 40 Id and the fifth surface 40 le.
[0770] The translation module may generate a lookup table customized translation data of the interferometer 400, which may assist one or more simulation modules to simulated ray behavior in the specific interferometer 400.
[0771] Fig. 20 shows an optional manner in which the customized translation data of a specific radiation setup can be generated and the manner in which a simulation module can use the customized translation data, according to some embodiments. This process may include the following steps:
[0772] generating a set of original rays (step 201), e.g., by defining coordinates, direction and polarization of each (original) ray emanating from a first surface such as coordinates, direction and polarization properties of each of the original rays O(c,d,p);
[0773] obtaining (e.g., by generating) customized translation data (CTD) of the specific radiation setup (step 202), e.g., based on radiation data information / parameters (data 20),where the CTD of the specific radiation setup may include information pertaining to the translation of each of the original rays from the first surface O(c,d,p) to a handshake surface H(c,d,p) - the CTD may also include ray information of rays in one or more intermediate hit surfaces, the CTD may also be generated by using additional information such as additional constraints and / or optical mask(s) located in intermediate surface(s) (step 203);
[0774] the CTD may be updated (step 205) based on for example sensor effects (step 204) such as changes in size of an aperture of the radiation setup, changes in distances between different elements of the radiation setup etc;
[0775] preparing a scene (step 206) - e.g., performed by the simulation module;
[0776] seeding the scene with rays (step 207) - using the original set of rays that has been generated (performed by the simulation module);
[0777] preparing (generating) customized translation data of the specific radiation setup (step 205);
[0778] using the updated CTD (e.g., by the simulation module) to determine one or more ray properties such as phase and / or amplitude of each ray (step 208) before accumulation of the rays;
[0779] performing an accumulation of the rays (step 209) at the translation location; and
[0780] determining one or more image properties (step 211) such as pixel color of each pixel of an image of the scene.
[0781] Fig. 21 shows an aperture stop 500 of an optical radiation setup that has a radial symmetry about a central point. In these cases, the translation module can analyze the hit point of each hit ray on the aperture stop surface. With that, the translation module can post-select the rays to be ignored in the accumulation stage, for example by multiplying the amplitude of each hit ray by a factor S(r0 or by defining a translation function that pertains to the hit point of the ray over the surface of the stop aperture 500. Such analysis can influence the focusing parameters of an optical apparatus on demand and / or in realtime.
[0782] According to some embodiments, the stop aperture 500 may also influence other properties of each ray such as ray polarization, ray coordinates, ray propagation direction, etc., which may also be included in the ray's translation function or factor(s).
[0783] Fig. 22 shows a multi-aperture stop aperture (MASA) 600, which may have several apertures such as apertures 601-606 located at different locations over the MASA 600 and may have different aperture sizes and / or shapes.
[0784] When the radiation setup being processed includes such MASA 600, the translation module may post-select the rays to be ignored in the accumulation stage as the rays that hit the ray blocking / reflecting / absorbing areas of the optical element 600 and determine translation properties / function of other rays according to the specific aperture of the specific stop aperture 601 / 602 / 603 / 604 / 605 / 606 they have passed through.
[0785] According to some embodiments, one or more of the stop apertures 601 / 602 / 603 / 604 / 605 / 606 of the MASA 600 may not simply include a hole or a transparent element but may instead include, for example:
[0786] an optical filter that may enable transmission therethrough only of rays of specific spectral properties such as rays of a wavelength that is within one or more specific wavelength bands;
[0787] a beam splitter that may change direction of at least some of the rays passing therethrough; or
[0788] an optical mask such as a diffractive mask that transforms properties of the rays passing therethrough.
[0789] In such cases, the translation module may / should consider all ray changing properties for each aperture and the location / coordinates of each aperture of the MASA for generating the customized translation data.
[0790] Fig. 23 shows a schematic illustration of an X-ray based radiation setup 610 for using customized translation data for assisting the simulation of a scene in which a sample is X-rayed by a simulated or real X-ray system 620, according to some embodiments.
[0791] In this example, the X-ray system may be a photoelectron spectroscopic system 620 which may include:
[0792] an electron gun 621;
[0793] one or more X-ray anodes such as X-ray anode 622;
[0794] one or more X-radiation reflectors, such as reflector 623; and
[0795] a sample holding apparatus, such as sample stage 624, for holding one or more samples such as sample 20.
[0796] According to some embodiments, the X-ray based radiation setup 610 may include one or more of:
[0797] an aperture surface 611 such as a variable aperture;
[0798] one or more electron lenses such as electron lens 612;
[0799] an energy analyzer 613; and
[0800] a detector 614 such a multi-channel detector.
[0801] In order to generate customized translation data of the specific X-ray system 620, at least two surfaces may be defined: a first surface (surface A) located before the aperture surface 611, and a second surface (surface B) located over a plane of the detector 614.
[0802] In this case the handshake surface may be the first surface (surface A) and the customized translation data may calculate how X-rays are translated between the first surface A and the second surface B.
[0803] A simulation module that simulates the sampling of a sample 20 by using the X-ray system 620, may receive the customized translation data of the specific X-ray radiation setup 610 to simulate, for example, a sample-testing process of the sample 20.
[0804] The translation of X-rays properties from the first surface A to the second surface B through the elements of the X-ray radiation setup 610: 611-614, may be done by recording one or more properties of each ray such as phase, amplitude / peak / intensity, direction, etc. at least at the second surface B.
[0805] In addition to the core parameters that are common to all radiation types, the following are defined:- Position (x, y, z): the starting or interaction coordinates of the ray.- Direction (vx, vy, vz): the normalized propagation vector.- Amplitude: the magnitude of the field, expressed as a scalar or normalized value.- Phase: the relative phase of the field, expressed in radians or degrees.- Polarization Vector: a 2D or 3D vector specifying the E-field orientation (e.g., linear, circular, elliptical).- Wavelength / Frequency / Energy: a spectral representation dependent on the radiation domain (visible = wavelength in nm; x-ray = photon energy in keV; RF = frequency in Hz).
[0806] Additional extended fields, which may be defined depending on the specific radiation regime, include:
[0807] Optical (visible / IR / UV):- Spectral band (monochromatic or multi -wavelength set).- Coherence state (coherent, incoherent, or hybrid).- Temporal characteristics (e.g., pulse duration, repetition rate).- Divergence or angular spread.
[0808] X-ray:- Photon energy (keV).- Material interaction type (e.g., absorption, Rayleigh scattering, Compton scattering).- Photon count or statistical weight (e.g., for Monte Carlo simulations).- Crystal interaction metadata (e.g., lattice plane indices, Bragg angle).
[0809] RF:- Carrier frequency (Hz).- Bandwidth (Af).- Antenna pattern metadata (gain, orientation, polarization match).- Path loss factor (per-ray attenuation).- Time of Arrival (TOA) for channel impulse response.- Doppler shift (Hz) for moving sources or targets.
[0810] Fig. 24 shows a schematic illustration of a radio frequency (RF) based radiation setup 710 used for generating customized translation data thereof, for assisting simulation of an RF-based communication scene, according to some embodiments.
[0811] According to these embodiments, the RF based radiation setup 710 may include a RF receiver 711 or a transceiver and one or more RF reflectors such as reflectors 712 and 713, and may serve as a RF antenna / station.
[0812] RF signals transmitted from a transmitter 620 or a transceiver may impinge or pass various surfaces / elements / objects of a scene until they arrive at the RF based radiation setup 710. Such objects may be buildings, road, posts, or weather related objects such as fog, cloud(s), rain, snow, each such object influences how RF radiation is reacting therewith by, for example, reflection, absorption, etc.
[0813] In order for a simulation module to simulate how the RF radiation / signals interact with all these objects of the scene and how the scene is captured by the RF based radiation setup 710, a customized translation data of the specific RF based radiation setup may be generated, for rays propagated from a first surface of the RF based radiation setup (surface A) to a second surface (surface B), which may be the receiver's input surface.
[0814] The translation of signals / rays properties from the first surface A to the second surface B through the reflectors 712 and 713 may be done by recording one or more properties of each signal / ray such as phase, amplitude / intensity / peak, direction, etc.
[0815] An exemplary customized translation data of the specific Antenna RF radiation setup 710:
[0816] While the invention has been described with respect to a limited number of embodiments, these should not be construed as limitations on the scope of the invention, but rather as exemplifications of some of the embodiments.
[0817] Any digital computer system, unit, device, module and / or engine exemplified herein can be configured or otherwise programmed to implement a method disclosed herein, and to the extent that the system, module and / or engine is configured to implement such a method, it is within the scope and spirit of the disclosure. Once the system, module and / or engine are programmed to perform particular functions pursuant to computer readable and executable instructions from program software that implements a method disclosed herein, it in effect becomes a special purpose computer particular to embodiments of the method disclosed herein. The methods and / or processes disclosed herein may be implemented as a computer program product that may be tangibly embodied in an information carrier including, for example, in a non-transitory tangible computer-readable and / or non-transitory tangible machine-readable storage device. The computer program product may directly loadable into an internal memory of a digital computer, comprising software code portions for performing the methods and / or processes as disclosed herein.
[0818] Additionally or alternatively, the methods and / or processes disclosed herein may be implemented as a computer program that may be intangibly embodied by a computer readable signal medium. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a non-transitory computer or machine-readable storage device and that can communicate, propagate, or transport a program for use by or in connection with apparatuses, systems, platforms, methods, operations and / or processes discussed herein.
[0819] The terms “non-transitory computer-readable storage device” and “non- transitory machine-readable storage device” encompasses distribution media,intermediate storage media, execution memory of a computer, and any other medium or device capable of storing for later reading by a computer program implementing embodiments of a method disclosed herein. A computer program product can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by one or more communication networks.
[0820] These computer readable and executable instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable and executable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.
[0821] The computer readable and executable instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0822] A module may comprise a machine or machines executable instructions. A module may be embodied by a circuit or a controller programmed to cause the system to implement the method, process and / or operation as disclosed herein. For example, a module may be implemented as a hardware circuit comprising, e.g., custom very large- scale integration (VLSI) circuits or gate arrays, an Application-specific integrated circuit (ASIC), off-the-shelf semiconductors such as logic chips, transistors, and / or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices and / or the like.
[0823] In the discussion, unless otherwise stated, adjectives such as “substantially” and “about” that modify a condition or relationship characteristic of a feature or features of an embodiment of the invention, are to be understood to mean that the condition or characteristic is defined to within tolerances that are acceptable for operation of the embodiment for an application for which it is intended.
[0824] Unless otherwise specified, the terms “substantially”, “'about” and / or “close” with respect to a magnitude or a numerical value may imply to be within an inclusive range of -10% to +10% of the respective magnitude or value.
[0825] It is important to note that the method may include is not limited to those diagrams or to the corresponding descriptions. For example, the method may include additional or even fewer processes or operations in comparison to what is described in the figures. In addition, embodiments of the method are not necessarily limited to the chronological order as illustrated and described herein.
[0826] Discussions herein utilizing terms such as, for example, "processing", "computing", "calculating", "determining", "establishing", "analyzing", "checking", “estimating”, “deriving”, “selecting”, “inferring” or the like, may refer to operation(s) and / or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulate and / or transform data represented as physical (e.g., electronic) quantities within the computer's registers and / or memories into other data similarly represented as physical quantities within the computer's registers and / or memories or other information storage medium that may store instructions to perform operations and / or processes. The term determining may, where applicable, also refer to “heuristically determining”.
[0827] It should be noted that where an embodiment refers to a condition of "above a threshold", this should not be construed as excluding an embodiment referring to a condition of "equal or above a threshold". Analogously, where an embodiment refers to a condition “below a threshold”, this should not to be construed as excluding an embodiment referring to a condition “equal or below a threshold”. It is clear that should a condition be interpreted as being fulfilled if the value of a given parameter is above a threshold, then the same condition is considered as not being fulfilled if the value of the given parameter is equal or below the given threshold. Conversely, should a condition beinterpreted as being fulfilled if the value of a given parameter is equal or above a threshold, then the same condition is considered as not being fulfilled if the value of the given parameter is below (and only below) the given threshold.
[0828] It should be understood that where the claims or specification refer to "a" or "an" element and / or feature, such reference is not to be construed as there being only one of those elements. Hence, reference to “an element” or “at least one element” for instance may also encompass “one or more elements”.
[0829] Terms used in the singular shall also include the plural, except where expressly otherwise stated or where the context otherwise requires.
[0830] In the description and claims of the present application, each of the verbs, "comprise" "include" and "have", and conjugates thereof, are used to indicate that the object or objects of the verb are not necessarily a complete listing of components, elements or parts of the subject or subjects of the verb.
[0831] Unless otherwise stated, the use of the expression “and / or” between the last two members of a list of options for selection indicates that a selection of one or more of the listed options is appropriate and may be made. Further, the use of the expression “and / or” may be used interchangeably with the expressions “at least one of the following”, “any one of the following” or “one or more of the following”, followed by a listing of the various options.
[0832] It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments or example, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, example and / or option, may also be provided separately or in any suitable sub-combination or as suitable in any other described embodiment, example or option of the invention. Certain features described in the context of various embodiments, examples and / or optional implementation are not to be considered essential features of those embodiments, unless the embodiment, example and / or optional implementation is inoperative without those elements.
[0833] It is noted that the terms “in some embodiments”, “according to some embodiments”, "according to some embodiments of the invention", “for example”, “e.g.”, “for instance” and “optionally” may herein be used interchangeably.
[0834] The number of elements shown in the Figures should by no means be construed as limiting and is for illustrative purposes only.
[0835] It is noted that the terms “operable to” can encompass the meaning of the term “modified or configured to”. In other words, a machine “operable to” perform a task can in some embodiments, embrace a mere capability (e.g., “modified”) to perform the function and, in some other embodiments, a machine that is actually made (e.g., “configured”) to perform the function.
[0836] Throughout this application, various embodiments may be presented in and / or relate to a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the embodiments. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
[0837] The phrases “ranging / ranges between” a first indicate number and a second indicate number and “ranging / ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals there between.
Claims
CLAIMS1. A method, implementable by a processing circuitry, for assisting radiation behavior simulation, the method comprising:• obtaining customized translation data associated with a specific radiation setup, the customized translation data comprises ray translation data of each of one or more rays propagated between at least two surfaces; and• using the customized translation data of the specific radiation setup for simulating behavior of one or more simulated rays passed through at least part of the specific radiation setup, wherein the customized translation data is used for simulation of behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
2. The method of claim 1, wherein the radiation setup comprises at least one of: an optical setup, an X-ray setup, a radio frequency (RF) setup, a THz setup, a microwave setup, Gamma radiation setup, wherein the rays propagated between the at least two surfaces are within any predefined spectral range.
3. The method of claim 1, wherein the customized translation data is used to translate one or more simulated rays from one of the at least two surfaces to another surface of the at least two surfaces.
4. The method of claim 1, wherein the simulation of the behavior of the one or more simulated rays is done for one or more of: (i) scene rendering, (ii) simulation of optical systems, (iii) simulation used for computer game designing, planning and / or running, (iv) detection simulation, (v) imaging simulation, (vi) simulation of a radiation system.
5. The method of claim 1, wherein the simulation of the behavior of the one or more simulated rays is done by using at least one simulation module.
6. The method of claim 1, wherein each ray translation data of the customized translation data pertains to one or more of: one or more ray properties;one or more translation parameters' values; one or more translation factors; one or more translation instructions.
7. The method of claim 6, wherein the one or more ray properties and / or the one or more translation parameters' values pertain to one or more of: ray coordinates; ray phase; ray wavelength, color and / or frequency; ray propagation direction; ray intensity, amplitude or energy; ray flux; ray polarization; ray radiation path or optical path; ray trajectory; one or more interference patterns of the ray; one or more instructions for translating one or more properties of the ray; one or more deduced parameters of the ray.
8. The method of claim 7, wherein the radiation path or the optical path of each ray is determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
9. The method of claim 1, wherein the customized translation data is in a format of a table or an array associating each ray of the one or more rays, with a respective one or more of: ray properties, translation instructions, translation parameters or factors, and / or deduced parameters.
10. The method of claim 1, wherein the customized translation data is generated by using known characteristics and relative positions of one or more elements and / or surfaces of the specific radiation setup and relative location of at least one of the at least two surfaces .
11. The method of claim 1, wherein the specific radiation setup is virtual or real.
12. The method of claim 1 further comprising checking whether the customized translation data requires adaptation to a specific simulation module, and / or adapting the customized translation data to the specific simulation module that is to use the customized translation data for simulating of the behavior of the one or more simulated rays, if the customized translation data requires adaptation to the specific simulation module, creating an adapted customized translation data that is used for the simulating of the behavior of the one or more simulated rays.
13. The method of claim 1 further comprising generating the customized translation data, using a translation module.
14. The method of claim 13, wherein the generating of the customized translation data includes the steps of:• obtaining radiation setup data of a specific radiation setup;• processing the radiation setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
15. The method of claim 13, wherein in cases in which one or more components of the specific radiation setup has spatial and / or translation symmetry, defining several different symmetrical parts of the specific radiation setup, the generation of customized translation data of the specific radiation setup is done by generating customized translation data of one part of the one or more rays passed through one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry thereof.
16. The method of claim 15, wherein the spatial and / or translation symmetry comprises one or more of:cylindrical symmetry; planar symmetry; rotational symmetry; translational symmetry; scale Invariance.
17. The method of claim 13 further comprising conducting an approximation process for increasing the number of the one or more rays by using one or more approximation techniques, generating a larger number of rays.
18. The method of claim 17, wherein the approximation process includes using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it.
19. The method of claim 17, wherein the approximation process is done by using one or more interpolation techniques, one or more differential ray techniques and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
20. The method of claim 19, wherein the interpolation techniques include one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation;Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation;Hermit interpolation;Polynomic interpolation.
21. The method of claim 19, wherein the machine learning based modeling is done by training a machine learning model of a specific radiation setup, by using radiation setup data and / or a pre-generated lookup table or array of the specific radiation setup, for generating a trained model of the specific radiation setup.
22. The method of claim 1, wherein the customized translation data of the specific radiation setup is generated by using a cascaded / gradual technique, in which more than two surfaces are defined, and ray behavior of the rays between each pair of surfaces is determined.
23. The method of claim 1, wherein the accumulation stage is carried out at an accumulation surface, by waiting for all the rays before performing of the accumulation of the rays or by performing a temporal dependent cumulative accumulation of each of one or more part of the rays upon arrival thereof.
24. The method of claim 1 further comprising updating the customized translation data.
25. The method of claim 24, wherein the updating is used for simulating of one or more changes in one or more of:- one or more properties of at least one element or surface of the specific radiation setup;- one or more properties of one or more of the at least two surfaces;- one or more properties of the one or more rays;- one or more sensor effects.
26. A translation module for assisting radiation behavior simulation, the translation module is configured to: obtain customized translation data, associated with a specific radiation setup, comprising ray translation data of each of one or more rays propagated between at least two surfaces, wherein at least one of the at least two surfaces is of a specific radiation setup, andenable one or more simulation modules of one or more types to use customized translation data of the specific radiation setups, wherein the customized translation data is used by the one or more simulation modules to simulate behavior of the one or more simulated rays during or before an accumulation stage of the one or more simulated rays.
27. The translation module of claim 26, wherein the customized translation data is used to translate one or more simulated rays from one of the at least two surfaces to another surface of the at least two surfaces.
28. The translation module of claim 26, wherein the simulation of the behavior of the one or more simulated rays is done for scene rendering, simulation of optical systems and changes made therein, simulation used for computer game designing, planning and / or running.
29. The translation module of claim 26, wherein each of the one or more simulation modules is configured for visual and / or optical simulation.
30. The translation module of claim 26, wherein each ray translation data of the customized translation data pertains to one or more of: one or more ray properties; one or more translation parameters' values; one or more translation instructions.
31. The translation module of claim 30, wherein the one or more ray properties and / or the one or more translation parameters' values pertain to one or more of: ray phase; ray wavelength, color and / or frequency; ray propagation direction, ray intensity, amplitude or energy; ray flux;ray polarization; ray radiation path or optical path; ray trajectory; one or more interference patterns of the ray; one or more instructions for translating one or more properties of the ray; one or more deduced parameters of the ray.
32. The translation module of claim 31, wherein the ray radiation path or optical path of each ray is determined between at least one of the at least two surfaces and another surface of the at least two surfaces.
33. The translation module of claim 26, wherein the customized translation data is in a format of a table or an array associating each simulated ray of the one or more simulated rays, with a respective one or more of: ray properties, translation instructions, translation parameters, and / or deduced parameters.
34. The translation module of claim 26, wherein the translation module is further configured for generating the customized translation data by using known characteristics and relative positions of one or more elements or surfaces of the specific radiation setup and relative location of at least one of the at least two surfaces.
35. The translation module of claim 34, wherein the generating of the customized translation data includes the steps of:• obtaining a setup data of a specific radiation setup;• processing the setup data of the specific radiation setup, to generate a customized translation data of the specific radiation setup.
36. The translation module of claim 35, wherein in cases in which one or more components of the specific radiation setup has spatial and / or translation symmetry, defining several different symmetrical parts of the specific radiation setup, the generation of customized translation data of the specific radiation setup is done by generating customized translation data of one part of the one or more rays passedthrough one of the several parts of the specific radiation setup and determining ray translation data of rays passed through different parts of the specific radiation setup according to the spatial symmetry thereof.
37. The method of claim 36, wherein the spatial and / or translation symmetry comprises one or more of: cylindrical symmetry; planar symmetry; rotational symmetry; translational symmetry; scale Invariance.
38. The translation module of claim 26, wherein the specific radiation setup is virtual and / or real.
39. The translation module of claim 26, wherein the translation module is configured to check whether the customized translation data requires adaptation to a specific simulation module and enable adaption of the customized translation data to the specific simulation module via an adaptation module.
40. The translation module of claim 39, wherein the adaptation module is embedded in the translation module or in the simulation module.
41. The translation module of claim 26, wherein the translation module is further configured to conduct an approximation process for increasing the number of the one or more rays by using one or more approximation techniques, generating a larger number of rays passed through the at least two surfaces.
42. The translation module of claim 41, wherein the approximation process may include using one or more properties of at least one ray to deduce one or more corresponding properties of one or more additional rays located adjacently to it.
43. The translation module of claim 42, wherein the approximation process is done by using one or more interpolation techniques, one or more differential techniques and / or by an Artificial Intelligence (Al) and / or machine learning based modeling.
44. The translation module of claim 43, wherein the interpolation techniques include one or more of the following techniques: bi-interpolation; cubic interpolation; random interpolation; spline interpolation;Gaussian process regression; invers distance weighing; radial basis function (RBF) interpolation; natural neighbor interpolation;Hermit interpolation;Polynomic interpolation.
45. The translation module of claim 26, wherein the translation module is configured to generate the customized translation data of the specific optical setup, by using a cascaded / gradual technique, in which more than two surfaces are defined, and ray behavior of the one or more rays between each pair of surfaces is determined.
46. The translation module of claim 26, wherein the accumulation stage is carried out at an accumulation surface, by waiting for all the rays before performing of the accumulation of the rays or by performing a temporal dependent cumulative accumulation of each of one or more parts of the rays upon arrival thereof.
47. The translation module of claim 26, wherein the radiation setup comprises at least one of: an optical setup, an X-ray setup, a radio frequency (RF) setup, a THz setup, a microwave setup, Gamma radiation setup, wherein the rays propagated between the at least two surfaces are within any predefined spectral range.
48. The translation module of claim 26, wherein the translation module and / or the simulation module is configured for updating the customized translation data.
49. The translation module of claim 48, wherein the updating is used for simulating of one or more changes in one or more of:- one or more properties of at least one element or surface of the specific radiation setup;- one or more properties of one or more of the at least two surfaces;- one or more properties of the one or more rays;- one or more sensor effects.
Citation Information
Patent Citations
Image processing apparatus, radiation imaging system, control method, and storage medium
US20160151035A1
Apparatus and methods for x-ray imaging
US20210244374A1
Using directional radiance for interactions in path tracing
US20210358198A1
X-ray imaging system
US20230011644A1
System and method for positioning radiation shield
WO2024079006A1