Creating SCORM-based E-Learning Apps
Verge3D is a perfect tool to convert your 3D content made with Blender, 3ds Max, or Maya to immersive educational materials. With Verge3D you have a choice to create standalone e-learning apps or integrate e-learning content into the existing learning management systems (LMS). To simplify the later task, we developed and included the SCORM tools right in our software.
- Why SCORM?
- Creating SCORM Course
- Running your course in LMS
- Using Puzzles
- Creating courses with multiple pages
As of today, SCORM is the most widely used standard for creating e-learning content which is supported by many (if not the most) LMS. Put simply, it is a de facto standard in the e-learning industry.
SCORM is also excellent for creating interactive e-learning materials in 3D because:
- It is web-friendly so you can run your courses using your favorite browser.
- It allows running modern web technologies such as WebGL (3D) and WebXR (AR/VR).
In Verge3D we implemented the most popular version of SCORM - 1.2. Supporting SCORM 2004 is under consideration.
Creating SCORM Course
Verge3D App Manager comes with a built-in SCORM generator. Just click on the following icon:
Then select course name, course ID and default course item name in the Create SCORM Course Package dialog:
Once created, download the ZIP archive with the SCORM course to a directory of your choice.
Running your course in LMS
The course package can be uploaded to any LMS compatible with SCORM 1.2. If not sure, choose one of the following:
- SCORM Cloud — cloud-based e-learning solution. It costs money but includes a free trial plan for small institutions (10 user registrations per month, 100MB storage).
- Moodle — free and open-source solution which can be hosted on your own infrastructure.
If you're creating content for an educational institution, consult with their technical staff for instructions on running your SCORM package.
In this guide we'll be using a SCORM Cloud to illustrate the task of uploading and running the SCORM course.
Login to your SCORM Cloud account and click on the Add Content button in the top right corner, then select Import a SCORM, AICC, xAPI or cmi5 package:
Click Browse, select the course ZIP, then press the Import Course button:
Wait for upload to complete, check that no errors happened during that process, then click Launch located on the Course Sandbox panel:
Enjoy the course:
When you're done, simply close the popup window to return back to the SCORM Cloud course configuration page.
Note that we've got the completely meaningless statuses on that page. To make the LMS record our progress we need to use the SCORM API. Thankfully, Verge3D includes easy-to-use puzzles to make things as simple as possible.
The minimal set of features we need to implement in a SCORM pack would be:
- Initiating a communication session with the LMS.
- Reporting a lesson status, such as "incomplete", "failed", or "passed".
- Finishing the communication session.
The puzzles implementing this are simple:
The lms finish puzzle executed in the beforeunload event handler (fired when the page closes). This is a good practice since we may do more communication with the LMS during app run time.
In many cases, reporting the lesson status is not sufficient. You might need to track achievements of the students as well. For this, store a score value to the cmi.core.score.raw element:
We used optional lms commit puzzle in this snippet to improve UI responsiveness of the LMS.
See E-Learning/SCORM plugin reference for more info on how to use the SCORM puzzles in your learning apps.
Creating courses with multiple pages
You can use multiple web pages (hence multiple 3D apps) in the same SCORM pack. However, we don't recommend this method since it will make things quite complicated.
Instead, there is the pack add item puzzle to add page-like items to the course. To make your app respond to the selected item, use the pack get item ID puzzle. For example:
Download the example project here.
Make sure you set proper lesson status for each pack item even if you have no questions/quiz there (in this case just set the cmi.core.lesson_status element to passed once the user has loaded the page).
Feel free to ask on the forums!