Adding Learning APIs to PlayCanvas

As an Instructional Designer as well as an Instructional Technology person, I’m always looking for new tools, apps that can help enhance the learning experiences for students. I have to say, PLAYCANVAS is one of the coolest I’ve come across in a long time. That said, with all the features this platform has, there’s no specific support for integrating the experiences created here into a learning environment. I would think this would be of interest to the developers of this platform, particularly since the two standard learning APIs, or more succinctly learning tracking APIs, are both written in JavaScript.

The first, originally developed for the Department of Defense, but now an International standard is SCORM (Shareable Content Object Reference Model). This API has been around for many years and allows for a standardized means for learning content to pass information about both the learner and learning event to a Learning Management System (LMS). This standard has gone through a number of iterations over the years but the two most prevalent versions used are SCORM 1.2 and SCORM 2004 3rd Edition (Although they stopped development at 4th Edition). There is a significant difference in how they communicate to the LMS. SCORM 1.2 which uses a “black Box” model for learning objects (SCOs can’t talk to other SCOs) and SCORM 2004 which does allow this through globals and allows for much more adaptive instructional events, but is also inherently much more complicated to implement correctly. (Hardly any LMS Vendor has implemented the Sequencing and Navigation Model of the standard correctly).

The update or follow-on API to SCORM was called the “Tin Can API”, which it still is by its original developer (Rustici), but that the Government ADL (Advanced Distributed Learning) Initiative has labeled the “Experience API” or xAPI for short. The primary difference between these two standards is that xAPI is not tied to an LMS per say, that you have to log in, etc. your activity recorded, and you log out. the xAPI allows users to experience any number of events from games to YouTube videos as part of their learning, which can be done on or offline, and that data can be passed by the event or a users mobile device when online again to what’s termed a Learning Record Store or LRS. This API has verb lists that a learning developer can add just about any activity as a learning event, including interacting within a 3D game or Environment/Simulation.

With WebGL being such a huge phenomenon for the future of 3D on the web, it just makes sense that you would want to incorporate some means to make PLAYCANVAS a easily usable platform for creating these 3D learning experiences. While SCORM uses a combination of JavaScript and XML for data, xAPI uses JavaScript and JSON, a much more compact means of data packaging/transfer.

The whole point to me of PLAYCANVAS is in making WebGL approachable to artists and designers who aren’t inherently programmers, which would include most Instructional Designers, although many like myself can do a decent amount of scripting, incorporating major APIs is just a tad bit out of my league. Information about both of these standards can be found at and I would hope that the developers who have been gracious enough to give us such an amazing development platform for 3D on the web, would think that adding support for these learning APIs would add a much needed and certainly desirable new set of features to an already outstanding tool.

Love the idea you got one thing wrong most of us are not designers were gamedevs and there have been many great games made with playcanvas I use playcanvas to prepare me for either a game engine Ill make myself from html,css,and javascript or from another game engine such as gamemaker.Btw I know how to code now due to playcanvas:grinning:

Hi Marquise,
I’m sure that using the Canvas Editor will help me to become a better programmer, but having these API tied directly in the Editor so you could assign objects and interactions as learning events that can be tracked and then sent to an LMS would make creating serious games for learning so much easier. For SCORM 1.2 it’s fairly easy, just add a SCORM API .js file and call LMSinitiate and LMSfinish, now you have a SCORM conformant lesson. But, you still have to package it properly, that’s why adding the API and integrating it into the Editor would be so much better, for you could enter in all the specifics for a lesson/game and this would become part of the imsmanifest.xml file which is mandatory to be inside the ZIP file of a SCORM PIF (PIF being the term used for a complete SCORM package that you would load onto an LMS for learners to view/interact with). Years ago they had an open source tie into the UNITY editor, but it hasn’t kept up with all the significant changes in the UNITY platform. With the death of Flash (including Molehill Flash 3D Canvas), there’s only one real choice for 3D on the web and that’s WebGL. But, the main thing that stops Instructional Designers, IMHO, from trying to create anything with it is the amount of coding/scripting required. if PLAYCANVAS could make things easier, especially if they added a visual programming feature like UE4 Blueprints or the add-ons for UNITY like uScript, BOLT or Playmaker it would be a huge benefit to using PLAYCANVAS. Both UE4 and UNITY support some WebGL format output options, but only UNITY has a SCORM add-on, but to my knowledge it’s not fully integrated into the Editor anymore which makes a big difference in ease of use. Would just love to see these things in PLAYCANVAS.

I mean I guess that would be a good idea I´, just saying fine with the way things are

I was also searching for the functionality of integrating the playcanvas games into LMS. So is there any way/development in that field? Please let me know.

I believe it is doable. I’m not sure what LMS looks like but companies like Disney has done something similar:

1 Like

@yaustar Thanks for the reply. Appreciate it.

I am currently working on VR as SCORM Contents, I had the same thought too as you, it’s how I stumbled upon this page, so I have some programming background and looking at PlayCanvas documentation, we can implement an xAPI through User Scripts, I think looking at xAPI specification is the best way to go, and thinking about how that would fit into PlayCanvas.

Has anyone been successful with getting PlayCanvas content onto an LMS?

I’m looking into this now but it seems information is quite lacking, I probably won’t have access to an FTP site, so exporting to a SCORM package would be the next ideal. Would love to know if anyone has been successful?



Hey @pixelised, you can download PlayCanvas projects as a standalone package. I’m not familiar with SCORM, but it shouldn’t be too hard create a Script that exposes the LMSIntiialize methods etc on the global scope.

Thanks for your feedback, I come across a website for converting HTML to SCORM:

it’s worth a shots at least, I will report back if I have success.

1 Like

Nice one. Yep there might be some PlayCanvas API’s you need to trigger, but should all be there for you