Input Types

rappture2web supports all standard Rappture input widget types.

Number

A floating-point input with optional units, min/max bounds, color bar, and presets.

<number id="temperature">
  <about>
    <label>Temperature</label>
    <description>Ambient temperature in the device region.</description>
  </about>
  <units>K</units>
  <min>50K</min>
  <max>1000K</max>
  <default>300K</default>
  <color>purple</color>
  <preset>
    <value>300K</value>
    <label>Room temperature</label>
  </preset>
</number>

Reading in Python:

T_str = rx['input.(temperature).current'].value  # "300K"
T = float(Rappture.Units.convert(T_str, to='K', units='off'))  # 300.0

Integer

An integer input with optional min/max bounds.

<integer id="npoints">
  <about><label>Number of points</label></about>
  <min>10</min>
  <max>10000</max>
  <default>200</default>
</integer>

Boolean

A checkbox that produces yes or no.

<boolean id="verbose">
  <about><label>Verbose output</label></about>
  <default>no</default>
</boolean>

String

A text input. Add <size> with a WxH format for multiline:

<string id="notes">
  <about><label>Notes</label></about>
  <size>40x5</size>
  <default>Enter notes here</default>
</string>

Choice

A dropdown select:

<choice id="method">
  <about><label>Method</label></about>
  <default>fermi</default>
  <option>
    <about><label>Fermi-Dirac</label></about>
    <value>fermi</value>
  </option>
  <option>
    <about><label>Boltzmann</label></about>
    <value>boltzmann</value>
  </option>
</choice>

Multichoice

Multiple checkboxes for selecting several options:

<multichoice id="layers">
  <about><label>Active layers</label></about>
  <option>
    <about><label>Oxide</label></about>
    <value>oxide</value>
  </option>
  <option>
    <about><label>Substrate</label></about>
    <value>substrate</value>
  </option>
</multichoice>

Loader

Loads example XML files that pre-populate other inputs:

<loader id="examples">
  <about><label>Load example</label></about>
  <example>examples/*.xml</example>
</loader>

Group

Groups child inputs under a labeled section:

<group id="advanced">
  <about><label>Advanced Settings</label></about>
  <number id="tol">
    <about><label>Tolerance</label></about>
    <default>1e-6</default>
  </number>
</group>

Phase

Creates tab pages for multi-step workflows:

<phase id="setup">
  <about><label>Setup</label></about>
  <number id="param1">...</number>
</phase>
<phase id="run">
  <about><label>Run</label></about>
  <number id="param2">...</number>
</phase>

Note

Read-only HTML or text content, often loaded from a file:

<note>
  <contents>file://description.html</contents>
</note>

Structure

A 3D molecular/crystal structure viewer with associated parameters:

<structure id="material">
  <about><label>Device structure</label></about>
  <default>
    <components>
      <molecule>...</molecule>
    </components>
    <parameters>
      <number id="thickness">
        <about><label>Thickness</label></about>
        <units>nm</units>
        <default>2nm</default>
      </number>
    </parameters>
  </default>
</structure>

Periodic Element

An interactive periodic table for selecting chemical elements.

Drawing

A 2D canvas with interactive hotspots for adjusting parameters visually.

Separator

A horizontal line between inputs for visual grouping:

<separator/>