GEAR - Immersive AR/VR Learning
Versions
Current version
1.7.0 (2026041400)
1.7.0
Plugin type: Activities
Frankenstyle component name: mod_gear
Version build number: 2026041400
Version release name: 1.7.0
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/blagojevicboban/moodle-mod_gear
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/blagojevicboban/moodle-mod_gear/issues
Changelog
All notable changes to mod_gear will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
1.7.0 - 2026-04-14
Added
- Hotspot Scale Control: Teachers can now configure default hotspot diameter via activity settings form (0.1 to 3.0 scale)
- Keyboard Navigation: Full keyboard accessibility for 3D viewer - Tab to focus, Arrow keys to navigate hotspots, Enter/Space to activate, Escape to close tooltips
- Screen Reader Support: Tooltips now include
role="tooltip",aria-live="polite", andaria-labelattributes for proper screen reader announcements - Touch/Long-Press Support: Mobile users can long-press (0.5s) on hotspots to view tooltips with haptic feedback on supported devices
- Tooltip Animations: Smooth fade-in/fade-out transitions with scale animation (200ms duration) for improved user experience
- Visual Focus Indicator: Canvas shows outline highlight when focused for keyboard users
Changed
- Canvas is now focusable with
tabindex="0"androle="application"for better accessibility - Tooltip icons marked as
aria-hidden="true"to prevent screen reader redundancy
1.6.0 - 2026-04-09
Changed
- Three.js Upgrade: Migrated from Three.js r128.0 (2021) to r160.0 (2024), gaining 3+ years of security patches, performance improvements, and WebXR enhancements
- ES Module Architecture: Replaced legacy global
THREEobject with modern ES module imports (import * as THREE from 'three') - Self-Hosted Dependencies: Eliminated CDN dependencies for Three.js - now bundled locally via Rollup for improved reliability and performance
- Build System: Added Rollup bundler to convert ES modules to AMD format for Moodle compatibility
- Deprecated APIs: Updated
THREE.sRGBEncodingtoTHREE.SRGBColorSpace(r152+ standard) - Hotspot Visibility: Increased default hotspot scale from
1.0to1.5and geometry from0.08to0.12radius for better visibility
Added
- Hover Tooltips: Interactive tooltips showing hotspot type icon, title, and description on hover (see
docs/TOOLTIP_SYSTEM.md) - Smart Positioning: Tooltips follow mouse cursor with automatic edge detection to stay on-screen
- Type-Specific Icons: Font Awesome icons for each hotspot type (info, quiz, audio, video, teleport)
- Rollup configuration (
rollup.config.js) for ES module bundling - New build dependencies:
three,@rollup/plugin-node-resolve,@rollup/plugin-commonjs,rollup,grunt-rollup - Documentation:
docs/TOOLTIP_SYSTEM.mdwith tooltip system details
Removed
- CDN script loading for Three.js core, OrbitControls, TransformControls, and GLTFLoader from
view.php
Migration Notes
- See
MIGRATION_COMPLETE.mdfor detailed migration guide and testing checklist - No database changes required - fully backward compatible
- Run
npm install && npx grunt amdto rebuild after updating
[1.5.0] - 2026-04-05
Added
- WebXR Controllers: Full hand tracking and laser pointer support for VR headsets to interact manually with hotspots.
- Text Chat: Added real-time Peer-to-Peer text chat using WebRTC Data Channels in the collaborative mode, alongside the existing voice chat.
- Analytics Dashboard: Added
report.phpoffering visual bar charts and tabular tracking metrics (hotspot clicks, VR starts, etc.) for teachers withmod/gear:managecapabilities. - Added Analytics button dynamically to the viewer header interface if the user has management permissions.
1.4.0 - 2026-04-05
Added
- Visual Authoring Gizmo: Integrated
THREE.TransformControlsso teachers can move and position hotspots seamlessly dragging them along X/Y/Z axes in the 3D space, instead of manually clicking points. - WebRTC Spatial Voice Chat: Integrated PeerJS for serverless P2P voice communication. Users' microphones are automatically spatialized as
THREE.PositionalAudioattached to their collaborative avatars. - Auto Text-to-Speech (TTS): Added a native browser-based Speech Synthesis engine. Users can click the speaker icon on any Info hotspot to have its content narrated aloud automatically.
- Gamification & Branching Scenarios: Hotspots can now be locked until a specific quiz is completed correctly. This enables "Escape Room" style learning where solving puzzles unlocks new areas or information.
- Teleport Waypoints: A new hotspot type that doesn't show a popup but instead seamlessly flies the camera to a new location in the 3D scene, ideal for guided navigation.
- Popup Animation: Unlocked hotspots now appear with a smooth scaling "pop" animation when their condition is met.
Changed
- Performance Optimization: Significant framerate improvements for mobile devices and WebXR by dynamically capping device pixel ratios and hinting
high-performancepower preference to the GPU.
1.3.0 - 2026-04-04
Added
- Video hotspot type: authors can now attach a video URL to any hotspot, supporting both direct video files (
.mp4,.webm,.ogg) and embedded iframes (YouTube, Vimeo, etc.) - Video playback rendered inside the hotspot popup via a responsive
<video>element or<iframe>depending on the URL type - New language strings (
video_url,video_url_help,hotspot_type_video) in English and Serbian
1.2.2 - 2026-04-03
Fixed
- Removed
Zone.IdentifierWindows metadata file from the plugin package that causedcore_plugin/corrupted_archive_structurevalidation error during Moodle plugin installation - Improved ZIP build process to exclude all Windows/macOS metadata files
1.2.1 - 2026-03-29
Changed
- Removed dev-only
vendor/andnode_modules/from the published plugin package - Updated GitHub Actions release workflow to exclude dev dependencies and configuration files
- Added
.gitattributesto ignore development files ingit archiveexports
1.2.0 - 2026-03-18
Added
- Fully implemented Privacy Provider (GDPR) for mod_gear (metadata, export, and deletion of user tracking and session data)
- Declared external location link (OpenAI) in Privacy Provider for transparency
Changed
- Replaced direct PHP
curl_init()with Moodle's\curlwrapper for OpenAI API calls to support site proxy and security settings - Reordered language strings (English and Serbian) alphabetically per Moodle standards
- Successfully minified
viewer.jswith correctasync/awaitsyntax in AMD modules - Updated plugin version to 2026031800
Fixed
- HTML validation error in
hotspot_popup.mustache(moveddivout ofh4) - Repaired
async/awaitscope issues inviewer.jsthat was preventing minification
1.1.0 - 2026-03-11
Added
- Localized editor instructions for adding hotspots (Shift + Click)
- Enhanced Instructions modal with localized strings for all controls
- New language strings for help modal categories
Changed
- Improved "Save Current View" label to "Save Current View (Set as default)" for clarity
- Minified viewer.js and updated sourcemaps
1.0.0 - 2026-03-10
Added
- Real-time Multi-user Collaborative mode with avatars
- Spatial Audio Guides (Three.js PositionalAudio)
- In-world Quiz functionality with automated grading
- Global Leaderboard system
- AI Content Assistant (OpenAI integration)
- Admin settings for AI configuration (API key, Model)
- User interaction tracking system
Fixed
- Quiz results aggregation logic in Leaderboard
- Missing trackEvent calls in viewer.js
- Database field access in grading logic
- Security: Removed sensitive files and API keys from repository
0.2.0 - 2026-02-05
Added
- Moodle 5.0/5.1 support
- MariaDB support in CI testing
- Source maps for AMD modules
Changed
- Updated CI workflow to test multiple Moodle versions
- Language strings ordered alphabetically per Moodle standards
Fixed
- ESLint errors (THREE.js global, curly spacing, case declarations)
- Stylelint CSS errors
- Mustache template example context
- PHPDoc documentation
0.1.0 - 2026-02-04
Added
- Initial release
- 3D model viewer with Three.js
- AR mode support (WebXR)
- VR mode support (WebXR)
- Interactive hotspots
- Auto-rotate functionality
- Fullscreen mode
- English and Serbian language support
- Activity completion tracking
- Course module integration
- GitHub Actions CI/CD
- Moodle 4.4+ compatibility
1.5.0 (2026040503)
1.5.0
Plugin type: Activities
Frankenstyle component name: mod_gear
Version build number: 2026040503
Version release name: 1.5.0
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/blagojevicboban/moodle-mod_gear
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/blagojevicboban/moodle-mod_gear/issues
Changelog
All notable changes to mod_gear will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.5.0] - 2026-04-05
Added
- WebXR Controllers: Full hand tracking and laser pointer support for VR headsets to interact manually with hotspots.
- Text Chat: Added real-time Peer-to-Peer text chat using WebRTC Data Channels in the collaborative mode, alongside the existing voice chat.
- Analytics Dashboard: Added
report.phpoffering visual bar charts and tabular tracking metrics (hotspot clicks, VR starts, etc.) for teachers withmod/gear:managecapabilities. - Added Analytics button dynamically to the viewer header interface if the user has management permissions.
1.4.0 - 2026-04-05
Added
- Visual Authoring Gizmo: Integrated
THREE.TransformControlsso teachers can move and position hotspots seamlessly dragging them along X/Y/Z axes in the 3D space, instead of manually clicking points. - WebRTC Spatial Voice Chat: Integrated PeerJS for serverless P2P voice communication. Users' microphones are automatically spatialized as
THREE.PositionalAudioattached to their collaborative avatars. - Auto Text-to-Speech (TTS): Added a native browser-based Speech Synthesis engine. Users can click the speaker icon on any Info hotspot to have its content narrated aloud automatically.
- Gamification & Branching Scenarios: Hotspots can now be locked until a specific quiz is completed correctly. This enables "Escape Room" style learning where solving puzzles unlocks new areas or information.
- Teleport Waypoints: A new hotspot type that doesn't show a popup but instead seamlessly flies the camera to a new location in the 3D scene, ideal for guided navigation.
- Popup Animation: Unlocked hotspots now appear with a smooth scaling "pop" animation when their condition is met.
Changed
- Performance Optimization: Significant framerate improvements for mobile devices and WebXR by dynamically capping device pixel ratios and hinting
high-performancepower preference to the GPU.
1.3.0 - 2026-04-04
Added
- Video hotspot type: authors can now attach a video URL to any hotspot, supporting both direct video files (
.mp4,.webm,.ogg) and embedded iframes (YouTube, Vimeo, etc.) - Video playback rendered inside the hotspot popup via a responsive
<video>element or<iframe>depending on the URL type - New language strings (
video_url,video_url_help,hotspot_type_video) in English and Serbian
1.2.2 - 2026-04-03
Fixed
- Removed
Zone.IdentifierWindows metadata file from the plugin package that causedcore_plugin/corrupted_archive_structurevalidation error during Moodle plugin installation - Improved ZIP build process to exclude all Windows/macOS metadata files
1.2.1 - 2026-03-29
Changed
- Removed dev-only
vendor/andnode_modules/from the published plugin package - Updated GitHub Actions release workflow to exclude dev dependencies and configuration files
- Added
.gitattributesto ignore development files ingit archiveexports
1.2.0 - 2026-03-18
Added
- Fully implemented Privacy Provider (GDPR) for mod_gear (metadata, export, and deletion of user tracking and session data)
- Declared external location link (OpenAI) in Privacy Provider for transparency
Changed
- Replaced direct PHP
curl_init()with Moodle's\curlwrapper for OpenAI API calls to support site proxy and security settings - Reordered language strings (English and Serbian) alphabetically per Moodle standards
- Successfully minified
viewer.jswith correctasync/awaitsyntax in AMD modules - Updated plugin version to 2026031800
Fixed
- HTML validation error in
hotspot_popup.mustache(moveddivout ofh4) - Repaired
async/awaitscope issues inviewer.jsthat was preventing minification
1.1.0 - 2026-03-11
Added
- Localized editor instructions for adding hotspots (Shift + Click)
- Enhanced Instructions modal with localized strings for all controls
- New language strings for help modal categories
Changed
- Improved "Save Current View" label to "Save Current View (Set as default)" for clarity
- Minified viewer.js and updated sourcemaps
1.0.0 - 2026-03-10
Added
- Real-time Multi-user Collaborative mode with avatars
- Spatial Audio Guides (Three.js PositionalAudio)
- In-world Quiz functionality with automated grading
- Global Leaderboard system
- AI Content Assistant (OpenAI integration)
- Admin settings for AI configuration (API key, Model)
- User interaction tracking system
Fixed
- Quiz results aggregation logic in Leaderboard
- Missing trackEvent calls in viewer.js
- Database field access in grading logic
- Security: Removed sensitive files and API keys from repository
0.2.0 - 2026-02-05
Added
- Moodle 5.0/5.1 support
- MariaDB support in CI testing
- Source maps for AMD modules
Changed
- Updated CI workflow to test multiple Moodle versions
- Language strings ordered alphabetically per Moodle standards
Fixed
- ESLint errors (THREE.js global, curly spacing, case declarations)
- Stylelint CSS errors
- Mustache template example context
- PHPDoc documentation
0.1.0 - 2026-02-04
Added
- Initial release
- 3D model viewer with Three.js
- AR mode support (WebXR)
- VR mode support (WebXR)
- Interactive hotspots
- Auto-rotate functionality
- Fullscreen mode
- English and Serbian language support
- Activity completion tracking
- Course module integration
- GitHub Actions CI/CD
- Moodle 4.4+ compatibility
1.4.0 (2026040500)
1.4.0
Plugin type: Activities
Frankenstyle component name: mod_gear
Version build number: 2026040500
Version release name: 1.4.0
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/blagojevicboban/moodle-mod_gear
Repository branch: main
Repository tag:
Issue/bug tracker URL: https://github.com/blagojevicboban/moodle-mod_gear/issues
Changelog
All notable changes to mod_gear will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
1.4.0 - 2026-04-05
Added
- Visual Authoring Gizmo: Integrated
THREE.TransformControlsso teachers can move and position hotspots seamlessly dragging them along X/Y/Z axes in the 3D space, instead of manually clicking points. - WebRTC Spatial Voice Chat: Integrated PeerJS for serverless P2P voice communication. Users' microphones are automatically spatialized as
THREE.PositionalAudioattached to their collaborative avatars. - Auto Text-to-Speech (TTS): Added a native browser-based Speech Synthesis engine. Users can click the speaker icon on any Info hotspot to have its content narrated aloud automatically.
- Gamification & Branching Scenarios: Hotspots can now be locked until a specific quiz is completed correctly. This enables "Escape Room" style learning where solving puzzles unlocks new areas or information.
- Teleport Waypoints: A new hotspot type that doesn't show a popup but instead seamlessly flies the camera to a new location in the 3D scene, ideal for guided navigation.
- Popup Animation: Unlocked hotspots now appear with a smooth scaling "pop" animation when their condition is met.
Changed
- Performance Optimization: Significant framerate improvements for mobile devices and WebXR by dynamically capping device pixel ratios and hinting
high-performancepower preference to the GPU.
1.3.0 - 2026-04-04
Added
- Video hotspot type: authors can now attach a video URL to any hotspot, supporting both direct video files (
.mp4,.webm,.ogg) and embedded iframes (YouTube, Vimeo, etc.) - Video playback rendered inside the hotspot popup via a responsive
<video>element or<iframe>depending on the URL type - New language strings (
video_url,video_url_help,hotspot_type_video) in English and Serbian
1.2.2 - 2026-04-03
Fixed
- Removed
Zone.IdentifierWindows metadata file from the plugin package that causedcore_plugin/corrupted_archive_structurevalidation error during Moodle plugin installation - Improved ZIP build process to exclude all Windows/macOS metadata files
1.2.1 - 2026-03-29
Changed
- Removed dev-only
vendor/andnode_modules/from the published plugin package - Updated GitHub Actions release workflow to exclude dev dependencies and configuration files
- Added
.gitattributesto ignore development files ingit archiveexports
1.2.0 - 2026-03-18
Added
- Fully implemented Privacy Provider (GDPR) for mod_gear (metadata, export, and deletion of user tracking and session data)
- Declared external location link (OpenAI) in Privacy Provider for transparency
Changed
- Replaced direct PHP
curl_init()with Moodle's\curlwrapper for OpenAI API calls to support site proxy and security settings - Reordered language strings (English and Serbian) alphabetically per Moodle standards
- Successfully minified
viewer.jswith correctasync/awaitsyntax in AMD modules - Updated plugin version to 2026031800
Fixed
- HTML validation error in
hotspot_popup.mustache(moveddivout ofh4) - Repaired
async/awaitscope issues inviewer.jsthat was preventing minification
1.1.0 - 2026-03-11
Added
- Localized editor instructions for adding hotspots (Shift + Click)
- Enhanced Instructions modal with localized strings for all controls
- New language strings for help modal categories
Changed
- Improved "Save Current View" label to "Save Current View (Set as default)" for clarity
- Minified viewer.js and updated sourcemaps
1.0.0 - 2026-03-10
Added
- Real-time Multi-user Collaborative mode with avatars
- Spatial Audio Guides (Three.js PositionalAudio)
- In-world Quiz functionality with automated grading
- Global Leaderboard system
- AI Content Assistant (OpenAI integration)
- Admin settings for AI configuration (API key, Model)
- User interaction tracking system
Fixed
- Quiz results aggregation logic in Leaderboard
- Missing trackEvent calls in viewer.js
- Database field access in grading logic
- Security: Removed sensitive files and API keys from repository
0.2.0 - 2026-02-05
Added
- Moodle 5.0/5.1 support
- MariaDB support in CI testing
- Source maps for AMD modules
Changed
- Updated CI workflow to test multiple Moodle versions
- Language strings ordered alphabetically per Moodle standards
Fixed
- ESLint errors (THREE.js global, curly spacing, case declarations)
- Stylelint CSS errors
- Mustache template example context
- PHPDoc documentation
0.1.0 - 2026-02-04
Added
- Initial release
- 3D model viewer with Three.js
- AR mode support (WebXR)
- VR mode support (WebXR)
- Interactive hotspots
- Auto-rotate functionality
- Fullscreen mode
- English and Serbian language support
- Activity completion tracking
- Course module integration
- GitHub Actions CI/CD
- Moodle 4.4+ compatibility
1.3.0 (2026040400)
1.3.0
Plugin type: Activities
Frankenstyle component name: mod_gear
Version build number: 2026040400
Version release name: 1.3.0
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/blagojevicboban/moodle-mod_gear
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/blagojevicboban/moodle-mod_gear/issues
Changelog
All notable changes to mod_gear will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
1.3.0 - 2026-04-04
Added
- Video hotspot type: authors can now attach a video URL to any hotspot, supporting both direct video files (
.mp4,.webm,.ogg) and embedded iframes (YouTube, Vimeo, etc.) - Video playback rendered inside the hotspot popup via a responsive
<video>element or<iframe>depending on the URL type - New language strings (
video_url,video_url_help,hotspot_type_video) in English and Serbian
1.2.2 - 2026-04-03
Fixed
- Removed
Zone.IdentifierWindows metadata file from the plugin package that causedcore_plugin/corrupted_archive_structurevalidation error during Moodle plugin installation - Improved ZIP build process to exclude all Windows/macOS metadata files
1.2.1 - 2026-03-29
Changed
- Removed dev-only
vendor/andnode_modules/from the published plugin package - Updated GitHub Actions release workflow to exclude dev dependencies and configuration files
- Added
.gitattributesto ignore development files ingit archiveexports
1.2.0 - 2026-03-18
Added
- Fully implemented Privacy Provider (GDPR) for mod_gear (metadata, export, and deletion of user tracking and session data)
- Declared external location link (OpenAI) in Privacy Provider for transparency
Changed
- Replaced direct PHP
curl_init()with Moodle's\curlwrapper for OpenAI API calls to support site proxy and security settings - Reordered language strings (English and Serbian) alphabetically per Moodle standards
- Successfully minified
viewer.jswith correctasync/awaitsyntax in AMD modules - Updated plugin version to 2026031800
Fixed
- HTML validation error in
hotspot_popup.mustache(moveddivout ofh4) - Repaired
async/awaitscope issues inviewer.jsthat was preventing minification
1.1.0 - 2026-03-11
Added
- Localized editor instructions for adding hotspots (Shift + Click)
- Enhanced Instructions modal with localized strings for all controls
- New language strings for help modal categories
Changed
- Improved "Save Current View" label to "Save Current View (Set as default)" for clarity
- Minified viewer.js and updated sourcemaps
1.0.0 - 2026-03-10
Added
- Real-time Multi-user Collaborative mode with avatars
- Spatial Audio Guides (Three.js PositionalAudio)
- In-world Quiz functionality with automated grading
- Global Leaderboard system
- AI Content Assistant (OpenAI integration)
- Admin settings for AI configuration (API key, Model)
- User interaction tracking system
Fixed
- Quiz results aggregation logic in Leaderboard
- Missing trackEvent calls in viewer.js
- Database field access in grading logic
- Security: Removed sensitive files and API keys from repository
0.2.0 - 2026-02-05
Added
- Moodle 5.0/5.1 support
- MariaDB support in CI testing
- Source maps for AMD modules
Changed
- Updated CI workflow to test multiple Moodle versions
- Language strings ordered alphabetically per Moodle standards
Fixed
- ESLint errors (THREE.js global, curly spacing, case declarations)
- Stylelint CSS errors
- Mustache template example context
- PHPDoc documentation
0.1.0 - 2026-02-04
Added
- Initial release
- 3D model viewer with Three.js
- AR mode support (WebXR)
- VR mode support (WebXR)
- Interactive hotspots
- Auto-rotate functionality
- Fullscreen mode
- English and Serbian language support
- Activity completion tracking
- Course module integration
- GitHub Actions CI/CD
- Moodle 4.4+ compatibility
1.2.2 (2026040300)
1.2.2
Plugin type: Activities
Frankenstyle component name: mod_gear
Version build number: 2026040300
Version release name: 1.2.2
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/blagojevicboban/moodle-mod_gear
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/blagojevicboban/moodle-mod_gear/issues
GEAR - Immersive AR/VR Learning for Moodle
GEAR (Geospatial Educational Augmented Reality) is a Moodle activity module that enables immersive AR/VR learning experiences with 3D models, hotspots, and WebXR support.
" Features
| Feature | Description |
|---------|-------------|
| 🎮 3D Viewer | Display glTF/GLB models with orbit controls |
| 📱 AR Mode | View 3D content in augmented reality |
| 🥽 VR Mode | Immersive VR experience with headsets |
| 📍 Hotspots | Interactive information points (Info, Quiz, Audio) |
| " AI Assist | Generate hotspot content and quizzes using AI |
| " Quizzes | In-world multiple choice questions with grading |
| ' Collaborative | Real-time multi-user sessions with avatars |
| 🏆 Leaderboards | Gamification with top score display |
| 🔊 Spatial Audio | Positional audio guides that react to distance |
| 📊 Tracking | Built-in completion, grading, and activity tracking |
| 🌐 WebXR | No app installation required |
| ' Privacy | GDPR compliant (Privacy API) |
| 📦 Backup | Full Backup/Restore support |
| 📱 Mobile | Moodle Mobile App support |
📋 Requirements
- Moodle: 4.1+
- PHP: 8.1+
- Database: MySQL, MariaDB, or PostgreSQL
- Browser: Chrome, Firefox, Safari, Edge (WebGL support)
- AR/VR: WebXR-compatible browser
- OpenAI API Key: Required for AI Assistant features
🚀 Installation
Via Git
cd /path/to/moodle/mod
git clone https://github.com/blagojevicboban/moodle-mod_gear.git gear
php admin/cli/upgrade.php
Via Download
- Download the latest release
- Extract to
/mod/gear/ - Visit Site Administration ' Notifications
- Usage
For Teachers
- Activity Setup:
- Add activity ' GEAR.
- Upload a 3D model (.glb recommended).
- Interactive Scene:
- Open the activity and click the Edit (pencil) icon.
- Shift + Click anywhere on the 3D model to add a hotspot.
- Scene Configuration:
- Adjust the camera to your preferred starting position and zoom level.
- Click Save Current View (Set as default) to save the initial state for all students.
- Hotspot Types:
- Info: Simple text description.
- Quiz: Multiple choice questions with automated grading.
- Audio: Positional audio (upload .mp3/wav URL).
- " AI Assistant:
- In the Hotspot editor, enter a short prompt and click AI Assist.
- For Quizzes, the AI will automatically generate options and select the correct answer.
For Students
- Exploration: Rotate, zoom, and move around the 3D model.
- Interaction: Click hotspots to view info, take quizzes, or listen to audio guides.
- Collaboration: See other students in the same scene as 3D avatars.
- Spatial Audio: Move closer to audio hotspots to hear them louder. Use headphones for the best experience.
⚙️ Configuration
To use the AI Assistant, you must configure the OpenAI API:
- Go to Site Administration ' Plugins ' Activity Modules ' GEAR.
- Select OpenAI as the AI Provider.
- Enter your OpenAI API Key.
- (Optional) Choose the model (e.g.,
gpt-4o-mini).
🎨 Supported Formats
| Format | Extension | Description |
|--------|-----------|-------------|
| glTF | .gltf | Text-based, external textures |
| GLB | .glb | Binary, single file (recommended) |
🛠️ Development
# Clone repository
git clone https://github.com/blagojevicboban/moodle-mod_gear.git gear
# Install dependencies
npm install
# Build & Minify JS
npx grunt amd
# Run PHP tests
vendor/bin/phpunit --testsuite mod_gear_testsuite
📁 Structure
mod/gear/
"── amd/ # JavaScript modules
"── backup/ # Backup/restore handlers
"── classes/ # PHP classes
"── db/ # Database schema
"── lang/ # Language files
"── pix/ # Icons
"── templates/ # Mustache templates
"── lib.php # Core functions
"── mod_form.php # Activity form
"── view.php # Main view
└── version.php # Plugin metadata
🌍 Languages
- 🇬🇧 English
- 🇷🇸 Srpski (Serbian)
" Contributing
See CONTRIBUTING.md for guidelines.
📄 License
GNU GPL v3 - see LICENSE
' Author
Boban Blagojevic
GitHub
🙏 Credits
Made with "️ for immersive education