Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
playcanvas
Advanced tools
PlayCanvas is an open-source game engine. It uses HTML5 and WebGL to run games and other interactive 3D content in any mobile or desktop browser.
Many games and apps have been published using the PlayCanvas engine. Here is a small selection:
You can see more games on the PlayCanvas website.
PlayCanvas is used by leading companies in video games, advertising and visualization such as:
Animech, Arm, Disney, Facebook, IGT, King, Miniclip, Leapfrog, Mozilla, Nickelodeon, Nordeus, PikPok, PlaySide Studios, Polaris, Product Madness, Samsung, Snap, Spry Fox, Zeptolab, Zynga
PlayCanvas is a fully featured game engine.
Here's a super-simple Hello World example - a spinning cube!
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PlayCanvas Hello Cube</title>
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no' />
<style>
body {
margin: 0;
overflow: hidden;
}
</style>
<script src='https://code.playcanvas.com/playcanvas-stable.min.js'></script>
</head>
<body>
<canvas id='application'></canvas>
<script>
// create a PlayCanvas application
const canvas = document.getElementById('application');
const app = new pc.Application(canvas);
// fill the available space at full resolution
app.setCanvasFillMode(pc.FILLMODE_FILL_WINDOW);
app.setCanvasResolution(pc.RESOLUTION_AUTO);
// ensure canvas is resized when window changes size
window.addEventListener('resize', () => app.resizeCanvas());
// create box entity
const box = new pc.Entity('cube');
box.addComponent('model', {
type: 'box'
});
app.root.addChild(box);
// create camera entity
const camera = new pc.Entity('camera');
camera.addComponent('camera', {
clearColor: new pc.Color(0.1, 0.1, 0.1)
});
app.root.addChild(camera);
camera.setPosition(0, 0, 3);
// create directional light entity
const light = new pc.Entity('light');
light.addComponent('light');
app.root.addChild(light);
light.setEulerAngles(45, 0, 0);
// rotate the box according to the delta time since the last frame
app.on('update', dt => box.rotate(10 * dt, 20 * dt, 30 * dt));
app.start();
</script>
</body>
</html>
Want to play with the code yourself? Edit it on CodePen.
Ensure you have Node.js installed. Then, install all of the required Node.js dependencies:
npm install
Now you can run various build options:
Command | Description | Outputs |
---|---|---|
npm run build | Build release, debug and profiler engines | build\playcanvas[.dbg/.prf].js |
npm run closure | Build minified release engine | build\playcanvas.min.js |
npm run tsd | Build engine Typescript bindings | build\playcanvas.d.ts |
npm run docs | Build engine API reference docs | docs |
Pre-built versions of the engine are also available.
Latest development release (head revision of master branch):
Latest stable release:
Specific engine versions:
To build the source map to allow for easier engine debugging, you can add -- -m
to any engine build command. For example:
npm run build -- -m
This will output to build/output/playcanvas.js.map
Note: The preprocessor is ignored when when generating the source map as it breaks the mapping. This means that all debug and profiling code is included in the engine build when generating the source map.
PlayCanvas uses of Karma for unit testing. There are two ways of running the tests:
Command | Description |
---|---|
npm run test | Runs unit tests on a built playcanvas.js |
npm run test:watch | Re-runs unit tests when changes are detected - open http://localhost:9876/debug.html |
To convert any models created using a 3D modelling package see this page in the developer documentation.
Want to help us make the best 3D engine on the web? Great! Check out CONTRIBUTING.md that will get you started. And look for "good first PR" label in Issues.
The PlayCanvas Engine is an open source engine which you can use to create games and 3D visualisation in the browser. In addition to the engine we also make the PlayCanvas development platform which features an Visual Editor, asset management, code editing, hosting and publishing services.
The PlayCanvas Engine is released under the MIT license. See LICENSE file.
FAQs
PlayCanvas WebGL game engine
The npm package playcanvas receives a total of 1,845 weekly downloads. As such, playcanvas popularity was classified as popular.
We found that playcanvas demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.