WebGL-based rendering engine for Scratch 3.0
Find a file
2025-02-11 01:56:07 +00:00
.github ci: add signature assistant workflow 2024-11-25 08:08:08 -08:00
.husky
docs
src
test test: fix tests for new ScratchStorage API 2024-12-20 10:29:22 -08:00
.editorconfig
.eslintignore
.eslintrc.js
.gitattributes
.gitignore
.jsdoc.json
.npmignore
.nvmrc chore: [UEPR-31] Update node version 2024-07-19 12:42:17 +03:00
CHANGELOG.md chore(release): 2.0.158 [skip ci] 2025-02-10 09:02:41 +00:00
commitlint.config.js
LICENSE chore!: set license to AGPL-3.0-only 2024-11-25 08:08:08 -08:00
package-lock.json chore(deps): update dependency jsdoc to v4 2025-02-11 01:56:07 +00:00
package.json chore(deps): update dependency jsdoc to v4 2025-02-11 01:56:07 +00:00
README.md docs: replace LLK URL in README.md 2024-02-23 13:34:32 -08:00
release.config.js
renovate.json5
TRADEMARK
webpack.config.js refactor: moved buffer plugin to shared config 2024-07-26 11:59:41 +03:00

scratch-render

WebGL-based rendering engine for Scratch 3.0

CircleCI

Greenkeeper badge

Installation

npm install https://github.com/scratchfoundation/scratch-render.git

Setup

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Scratch WebGL rendering demo</title>
    </head>

    <body>
        <canvas id="myStage"></canvas>
        <canvas id="myDebug"></canvas>
    </body>
</html>
var canvas = document.getElementById('myStage');
var debug = document.getElementById('myDebug');

// Instantiate the renderer
var renderer = new require('scratch-render')(canvas);

// Connect to debug canvas
renderer.setDebugCanvas(debug);

// Start drawing
function drawStep() {
    renderer.draw();
    requestAnimationFrame(drawStep);
}
drawStep();

// Connect to worker (see "playground" example)
var worker = new Worker('worker.js');
renderer.connectWorker(worker);

Standalone Build

npm run build
<script src="/path/to/render.js"></script>
<script>
    var renderer = new window.RenderWebGLLocal();
    // do things
</script>

Testing

npm test

Donate

We provide Scratch free of charge, and want to keep it that way! Please consider making a donation to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you!

Committing

This project uses semantic release to ensure version bumps follow semver so that projects depending on it don't break unexpectedly.

In order to automatically determine version updates, semantic release expects commit messages to follow the conventional-changelog specification.

You can use the commitizen CLI to make commits formatted in this way:

npm install -g commitizen@latest cz-conventional-changelog@latest

Now you're ready to make commits using git cz.