Skip to content

scratchfoundation/scratch-render

Folders and files

NameName
Last commit message
Last commit date
Nov 25, 2024
Dec 21, 2023
Aug 13, 2019
Oct 26, 2021
Dec 20, 2024
Jun 8, 2016
May 29, 2018
Apr 27, 2018
Jul 26, 2021
Oct 13, 2023
Aug 13, 2019
May 21, 2018
Jul 19, 2024
Mar 2, 2025
Nov 25, 2024
Feb 23, 2024
Jun 18, 2018
Dec 21, 2023
Mar 2, 2025
Mar 2, 2025
Dec 21, 2023
Feb 21, 2024
Jul 26, 2024

Repository files navigation

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.