lamkakam.github.io
Web-based GUI for RayOptics
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 20 · Act 10 · Transact 1 · Score: Not yet scored
Tool inspector
set_lens_prescription
Replace the complete Lens Editor prescription after strict validation. Numeric input guidance: Flat surfaces use `0` for radius of curvature. Infinity object/image distances use `1e10`. Material input guidance: catalog glass requires `manufacturer` to be one of `CDGM`, `Hikari`, `Hoya`, `Ohara`, `Schott`, or `Sumita`; special materials and reflective surfaces use an empty manufacturer. Single-index model glass uses `{"medium": " ", "manufacturer": ""}`. Model glass with `nd` and `vd` uses `{"medium": " ", "manufacturer": " "}`. All numeric values must be stringified. Material input special cases guidance: reflective surfaces use `{"medium": "REFL", "manufacturer": ""}`. Air, water, fluorite/fluorspar/CaF2, fused silica, and Schott D263 T eco use `{"medium": "air" | "Water" | "CAF2" | "Fused Silica" | "D263TECO", "manufacturer": ""}`. Some Ohara names ending in a single digit, including `S-BSL7`, `S-FSL5`, and `S-NBH5`, require canonical names with whitespace: `S-BSL 7`, `S-FSL 5`, and `S-NBH 5`.
Page: /ray-optics-web/
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
object |
object | yes | — |
surfaces |
array | yes | — |
image |
object | yes | — |
Raw JSON schema
{
"type": "object",
"required": [
"object",
"surfaces",
"image"
],
"properties": {
"object": {
"type": "object",
"required": [
"distance",
"medium",
"manufacturer"
],
"properties": {
"distance": {
"type": "number",
"finiteNumber": true
},
"medium": {
"type": "string",
"not": {
"enum": [
"REFL",
"refl"
]
}
},
"manufacturer": {
"type": "string"
}
},
"additionalProperties": false
},
"surfaces": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"curvatureRadius",
"thickness",
"medium",
"manufacturer",
"semiDiameter"
],
"properties": {
"label": {
"enum": [
"Default",
"Stop"
],
"type": "string"
},
"comment": {
"type": "string"
},
"curvatureRadius": {
"type": "number",
"finiteNumber": true
},
"thickness": {
"type": "number",
"finiteNumber": true
},
"medium": {
"type": "string"
},
"manufacturer": {
"type": "string"
},
"semiDiameter": {
"type": "number",
"finiteNumber": true
},
"aspherical": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"conicConstant"
],
"properties": {
"kind": {
"type": "string",
"const": "Conic"
},
"conicConstant": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"conicConstant",
"polynomialCoefficients"
],
"properties": {
"kind": {
"type": "string",
"const": "EvenAspherical"
},
"conicConstant": {
"type": "number",
"finiteNumber": true
},
"polynomialCoefficients": {
"type": "array",
"items": {
"type": "number",
"finiteNumber": true
},
"maxItems": 10
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"conicConstant",
"polynomialCoefficients"
],
"properties": {
"kind": {
"type": "string",
"const": "RadialPolynomial"
},
"conicConstant": {
"type": "number",
"finiteNumber": true
},
"polynomialCoefficients": {
"type": "array",
"items": {
"type": "number",
"finiteNumber": true
},
"maxItems": 10
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"conicConstant",
"toricSweepRadiusOfCurvature",
"polynomialCoefficients"
],
"properties": {
"kind": {
"type": "string",
"const": "XToroid"
},
"conicConstant": {
"type": "number",
"finiteNumber": true
},
"toricSweepRadiusOfCurvature": {
"type": "number",
"finiteNumber": true
},
"polynomialCoefficients": {
"type": "array",
"items": {
"type": "number",
"finiteNumber": true
},
"maxItems": 10
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"conicConstant",
"toricSweepRadiusOfCurvature",
"polynomialCoefficients"
],
"properties": {
"kind": {
"type": "string",
"const": "YToroid"
},
"conicConstant": {
"type": "number",
"finiteNumber": true
},
"toricSweepRadiusOfCurvature": {
"type": "number",
"finiteNumber": true
},
"polynomialCoefficients": {
"type": "array",
"items": {
"type": "number",
"finiteNumber": true
},
"maxItems": 10
}
},
"additionalProperties": false
}
]
},
"decenter": {
"type": "object",
"required": [
"coordinateSystemStrategy",
"alpha",
"beta",
"gamma",
"offsetX",
"offsetY"
],
"properties": {
"coordinateSystemStrategy": {
"enum": [
"bend",
"dec and return",
"decenter",
"reverse"
],
"type": "string"
},
"alpha": {
"type": "number",
"finiteNumber": true
},
"beta": {
"type": "number",
"finiteNumber": true
},
"gamma": {
"type": "number",
"finiteNumber": true
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
"diffractiveElement": {
"type": "object",
"properties": {
"diffractionGrating": {
"type": "object",
"required": [
"lpmm",
"order"
],
"properties": {
"lpmm": {
"type": "number",
"finiteNumber": true
},
"order": {
"type": "integer"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"clear_aperture": {
"anyOf": [
{
"type": "object",
"required": [
"shape",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "circular"
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"shape",
"obstructionRadius",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "annular"
},
"obstructionRadius": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0,
"exclusiveMaximum": {
"$data": "2/semiDiameter"
}
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"shape",
"xHalfWidth",
"yHalfWidth",
"rotation",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "rectangular"
},
"xHalfWidth": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"yHalfWidth": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"rotation": {
"type": "number",
"finiteNumber": true
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"shape",
"lpmm",
"rotation",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "ronchi"
},
"lpmm": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"rotation": {
"type": "number",
"finiteNumber": true
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
}
]
},
"edge_aperture": {
"anyOf": [
{
"type": "object",
"required": [
"shape",
"radius",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "circular"
},
"radius": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"shape",
"xHalfWidth",
"yHalfWidth",
"rotation",
"offsetX",
"offsetY"
],
"properties": {
"shape": {
"type": "string",
"const": "rectangular"
},
"xHalfWidth": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"yHalfWidth": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
},
"rotation": {
"type": "number",
"finiteNumber": true
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false,
"allOf": [
{
"if": {
"required": [
"clear_aperture"
],
"properties": {
"clear_aperture": {
"type": "object",
"required": [
"shape"
],
"properties": {
"shape": {
"const": "ronchi"
}
}
}
}
},
"then": {
"properties": {
"semiDiameter": {
"type": "number",
"finiteNumber": true,
"exclusiveMinimum": 0
}
}
}
}
]
}
},
"image": {
"type": "object",
"required": [
"curvatureRadius"
],
"properties": {
"curvatureRadius": {
"type": "number",
"finiteNumber": true
},
"decenter": {
"type": "object",
"required": [
"coordinateSystemStrategy",
"alpha",
"beta",
"gamma",
"offsetX",
"offsetY"
],
"properties": {
"coordinateSystemStrategy": {
"enum": [
"bend",
"dec and return",
"decenter",
"reverse"
],
"type": "string"
},
"alpha": {
"type": "number",
"finiteNumber": true
},
"beta": {
"type": "number",
"finiteNumber": true
},
"gamma": {
"type": "number",
"finiteNumber": true
},
"offsetX": {
"type": "number",
"finiteNumber": true
},
"offsetY": {
"type": "number",
"finiteNumber": true
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Similar websites
pocketgull.app
Pocket Gull is a real-time clinical AI consult engine powered by Google Gemini. Features 10D multi-paradigm strategy, FHIR R4 export & 3D spatial anatomy.
webmcp-six-lac.vercel.app
AI Navigation Layer: Model Context Protocol (MCP) Semantic DOM integration for intelligent, safe, and observable web navigation.
ghqsandbox.net
Interactive math and physics tools an AI agent can drive directly through WebMCP.
app.formative.com
Formative classroom assessment and learning platform