Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
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, Samsung, 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
var canvas = document.getElementById('application');
var app = new pc.Application(canvas, { });
app.start();
// 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', function() {
app.resizeCanvas();
});
// create box entity
var cube = new pc.Entity('cube');
cube.addComponent('model', {
type: 'box'
});
// create camera entity
var camera = new pc.Entity('camera');
camera.addComponent('camera', {
clearColor: new pc.Color(0.1, 0.1, 0.1)
});
// create directional light entity
var light = new pc.Entity('light');
light.addComponent('light');
// add to hierarchy
app.root.addChild(cube);
app.root.addChild(camera);
app.root.addChild(light);
// set up initial positions and orientations
camera.setPosition(0, 0, 3);
light.setEulerAngles(45, 0, 0);
// register a global update event
app.on('update', function (deltaTime) {
cube.rotate(10 * deltaTime, 20 * deltaTime, 30 * deltaTime);
});
</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
To execute a build of the engine to build/playcanvas-latest.js, do:
npm run build
Pre-built versions of the engine are also available.
Latest development release:
Latest stable release:
Specific engine versions:
To convert any models created using a 3D modelling package see this page in the developer documentation.
PlayCanvas makes use of Karma for running unit tests, and provides three test ways of executing them depending on what phase of development you're in:
# Runs the tests once over the unbuilt source files - useful if you just want a quick 'all-clear'
npm run test
# Watches all source and test files for changes, and automatically re-runs the tests when they change.
# Open http://localhost:9876/debug.html in your browser to debug the tests in real time.
#
# You can also edit the `tests/**/test_*.js` glob in tests/karma.conf.js to run a subset of the tests,
# during development.
npm run test:watch
# Runs the tests once over playcanvas.js - mainly used by CI, but sometimes useful if you want to
# test the engine after building it. Make sure to do `npm run build` first to make sure you have
# an up-to-date build.
npm run test:release
Full documentation available on the PlayCanvas Developer site including API reference. To build a local copy of the API reference manual to the docs folder, do:
npm run docs
See all the tutorials here.
You can develop TypeScript applications against the PlayCanvas engine. To generate a TypeScript definitions file for the entire API, do:
npm run tsd
This will output to build/output/playcanvas.d.ts
Forums - Use the forum to ask/answer questions about PlayCanvas.
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.
Please use Github Issues to report bugs or request features.
Please follow these steps to report a bug
Search for related issues - search the existing issues so that you don't create duplicates
Create a testcase - Please create the smallest isolated testcase that you can that reproduces your bug
Share as much information as possible - everything little helps, OS, browser version, all that stuff.
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,808 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
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.