Industrial software.
Built your way.

Build screens with a WYSIWYG editor. Connect your data. Make the application your operation needs—with a browser designer and a gateway you run.

INSIDE SPARKSTUDIO

The workspace, in focus.

SparkStudio operator application showing two reusable workcenter forms with target-rate inputs, operating-mode dropdowns and saved values.
02 / OPERATE

Forms for the people doing the work.

Publish a separate operator application with inputs, actions and reusable equipment forms.

SparkStudio sample transfer line with a tank, pump, valve, motor and pipe flow shown in a dark operator view.
03 / VISUALIZE

Put your process on screen.

Build process views with editable pipes, shapes, and pump, valve and motor symbols.

SparkStudio sample work-order table with a selected production record and an editable form backed by SQLite.
04 / WORK WITH DATA

Turn records into action.

Bring query results into tables and forms so operators can select a work order, update its details and save changes.

SparkStudio scripting workspace showing a Python work-order library, gateway events and browser events.
05 / SCRIPT

Make the logic your own.

Write reusable Python libraries, organize gateway events and add browser interactions in one scripting workspace.

01

Design in
your browser.

02

Run on
your infrastructure.

03

Keep control of
your application.

A direct path from
process data to useful tools.
FAMILIAR BY DESIGN

The application builder.
Back on your terms.

Build with a canvas, a palette, and controls that stay where you put them. Drag, resize, and connect each part of your application.

01 / LAYOUT

Place it. Make it work.

Drag and resize controls on a fixed canvas. Bind values, collect operator input, and open a popup without rebuilding your screen around a layout engine.

02 / REUSE

Build once. Give it context.

Reuse a parameterized form across equipment. Repeat cards for saved rows, with independent inputs and actions for each instance.

03 / PUBLISH

A deliberate handoff.

Try changes in Designer Preview. Save, then publish the approved application to a separate operator view. Draft screen edits can stay drafts.

DesignPreviewPublish
04 / BINDINGS

Let the screen follow the data.

Connect values, captions, colors and visibility to tags, form inputs and typed parameters with the property sheet’s fx controls.

05 / PROCESS GRAPHICS

Draw a clearer picture.

Combine pipes and equipment symbols with tanks, level indicators, numeric displays and progress bars to show what matters.

06 / TABLES & FORMS

Give every record a place.

Use query-backed tables, lists and trees. Configure columns, filter and sort loaded rows, and map selections into operator forms.

07 / SCRIPTING

Add your own behavior.

Write Python component events and reusable gateway logic. Send messages to operator tabs, or use JavaScript for browser interactions.

08 / CONTEXT

Keep the right details close.

Open parameterized popups with their own form state. Use declared screen and session values to carry context through the application.

09 / PROJECTS

Organize. Reuse. Move forward.

Keep screens, queries, scripts and assets together in independent projects. Move applications between installations with .sparkproj packages.

REAL DATA. REAL APPLICATION LOGIC.

From a tag value
to a useful action.

Bring OPC UA values into a typed tag model, use indirection to follow the selected asset, and write event logic in modern Python.

OPC UA clientDiscover, browse, read, and subscribe. Secured subscriptions have been verified in local Windows testing.

SQLite and SQL ServerBuild query-backed forms with parameterized reads and updates. SQLite application workflows are tested locally; live SQL Server validation is pending.

Python 3 on the gatewayUse form inputs, context, and the growing system.* API in authored button events.

Button event onClickPYTHON 3
CONTEXTcell = "Cell04"
# Read the selected cell’s rate.
values = system.tag.readBlocking([
    "[default]Cells/{cell}/Rate"
])

# Return a result to the application.
result = {
    "cell": parameters["cell"],
    "rate": values[0].value
}
ILLUSTRATIVE RESULT{ "cell": "Cell04", "rate": 142 }
CPython 3 · local gateway
DOWNLOAD SPARKSTUDIO

Your next application
starts here.

Docker

A container deployment for your own infrastructure.

Coming soon