Scriptable drawing and live experiments

Canvas & Playground

Sketch, animate, and iterate on native scripted UI in one feedback loop.

Explore source
Parent systemHtmlML
StatusPreview
Modules2
RepositoryHtmlML/JavaScriptPlayground

Canvas 2D, WebGL-oriented rendering, pointer events, animation frames, editable scripts, XAML preview, file bridges, console output, and TypeScript demos form an immediate native scripting laboratory.

  1. 01

    Canvas 2D drawing surface

  2. 02

    WebGL-oriented rendering context

  3. 03

    Live JavaScript and TypeScript demos

  4. 04

    XAML preview, files, and console bridges

From intent
to working system.

01

Edit

The playground loads JavaScript, TypeScript, XAML, and supporting assets.

02

Execute

The embedded runtime transpiles modules and runs them against the live TopLevel.

03

Draw

Canvas contexts record paths, paint, text, transforms, or GPU-oriented frames.

04

Inspect

Preview and console surfaces expose visible output and runtime diagnostics.

Adopt this
capability.

Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.

01 · Install
Terminal
git clone https://github.com/wieslawsoltes/HtmlML.git
cd HtmlML
dotnet run --project samples/JavaScriptPlayground/JavaScriptPlayground.csproj
02 · Use · javascript
quick-start.js
const canvas = document.getElementById('draw');
const ctx = canvas.getContext('2d');
ctx.strokeStyle = '#ff8f72';
canvas.addEventListener('pointermove', event => {
ctx.lineTo(event.x, event.y);
ctx.stroke();
});

Use one layer.
Compose the rest.

Read the module beside the complete system.

The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.

HtmlML

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…