Graphics
56 TopicsInteractive Dynamic Shadows Script
This JavaScript code automatically generates a realistic drop shadow that reacts to mouse movements, simulating a moving light source. How it works: Paste the code into an "Execute JavaScript" trigger. Add the Accessibility Text (Alt Text) Mybtnshad to any object or button. The shadow applies instantly and moves opposite to the cursor to simulate depth. Key Features: Fully customizable settings (intensity, blur, opacity) located right at the top of the script.123Views4likes1CommentUpdated "Reveal" codes
I’ve been experimenting with the original HTML code blocks included in Articulate 360’s built-in examples and wanted to share how far you can extend that base structure using GenAI to iterate and refine interactions. Starting with the default image-reveal index provided by Articulate, I used GenAI to progressively develop three new versions. I supplied my own images, created meaningful alternative text for screen readers, and introduced additional UX and accessibility improvements. Every version is fully tailorable if you want to adapt the formatting, colours, spacing or behaviour. The three examples are: Enhanced Image Reveal Grid Uses the original Articulate structure. Adds a hover zoom, a click-to-zoom state, and high-contrast purple letter tiles for accessibility. Fanned “Deck of Cards” Flip Interaction A dynamic fanned layout, more like a real card hand. Cards lift and reveal their letter on hover, flip on click, and reset if clicked again. Includes chevron navigation for easier cycling. Plain Flip Grid with Navigation A clean, accessible flip-card grid with navigation chevrons. Mirrors the deck behaviour but with a simplified layout. All three examples are linked below, along with the downloadable files. If you have suggestions, improvements or alternative approaches, I’d really love the feedback. And if you’d like to use or remix any part of this, feel free — I’d love to see what you create with it. Review360 Zip files GDrive location: HERE223Views4likes3CommentsCooking Game (Jeopardy style + Gamifiation)
Hello Articulate Heroes! I'm excited to share my second personal project with you — a cooking-themed, Jeopardy-style game! Cooking Frienzy This project was inspired by two fantastic webinar series shared here: How to Create A Jeopardy! Style Game Gamification series I started with the "Jeopardy!" template and added the following custom features: Cooking-themed questions and answers — 5 questions across 5 categories Custom visuals — including characters, backgrounds, UI, and tokens The ability to choose one of three characters at the start of the game (and replay with a different chef assistant!) Personalized feedback and questions — with character-specific images and voiceovers A 20-second Pomodoro-style timer with a “wiped” animation Tokens awarded when the user completes a certain number of questions The characters were created using AI. Thank you for taking the time to check out the game! I’d love to hear your thoughts — feel free to share any comments or suggestions! You can check-out the game by this link: Cooking FrienzySolved1.3KViews8likes20CommentsBuckle Up
With the additional functionality exposed by the JavaScript API, I've been wanting to implement more specific mechanics of design, e.g., movement/traversal, action/combat, puzzles/problem-solving, etc. With objects (and their coordinates) being so easy to reference now, I wanted to demonstrate movement/traversal being implementable with only some modest code. In this particular design, I wanted to explore how sliding textured images horizontally from one side of the screen to the other could simulate motion, especially with a simple, red rectangle standing in as a car controlled by you. Note: The Up/Down and Left/Right controls cancel each other out accidentally. My intent in this project was on animating graphics and connecting audio, not so much exploring controls, so I left it as it is. I do recognize though that additional learner control would likely improve that aspect of the experience. Graphics For graphics, I constrained myself to most every visual asset being either a basic shape styled a particular way or an image sourced from the content library so that the bulk of the emergence would come from how those simple objects were manipulated in complex ways. Below is a reduced version of the slide's main update loop: update(() => { // Calculates deltaTime (dt), a variable common in frame-rate dependent content like games to constrain the content from rushing or dragging unintentionally. const now = performance.now(); const dt = (now - lastTime) / 1000; // seconds since last frame lastTime = now; const elapsedSeconds = now - lastRecordedTime; // Flipping this flag to false naturally stops the road from moving. if (isMoving) { // Applies/simulates friction against the speed variable, increased elsewhere (not here) in other code related the keyboard keys. speed = Math.max(1, getVar('speed') - (getVar('isOffroad')? 2.5*gsap.ticker.deltaRatio(60) : .2*gsap.ticker.deltaRatio(60))); turnSpeed = Math.ceil(speed / 150) + (getVar('isOffroad')? 2 : 0); // The gsp.ticker calls above allow for gradual changes in the speed over time (as opposed to sudden changes), better simulating friction. In practice, increase and decrease speed however you want so long as its final value makes it down below to whichever lines change the x-position of the image. // Move roads to the left every frame road1.x -= speed * dt; road2.x -= speed * dt; // Reset to right side once entirely off-screen, leap-frogging one road image over the other. if (road1.x < (slideWidth() * -1)) { road1.x = road2.x + road1.width; } if (road2.x < (slideWidth() * -1)) { road2.x = road1.x + road2.width; } }; Audio The "car" features three sound emitters: A repetitive sound emulating exhaust coming out a car's muffler A slower, lower repetitive thump that plays when "driving" on grass A horn (press Spacebar or click the car) All three "emitted" sounds are generated at runtime (not sample-based) using the Tone.js library. The horn is instrumental and silly by design, demonstrating a simple "sine wave" from a default synth that one can use to play music. The other two emitters demonstrate a more complex understanding of waveform modulation. The offroad rumble and muffler synthesizers demonstrate the contextual simulation of simple rhythmic, mechanical sounds. The offroad sound is produced with a Metalsynth, a synthesizer considered clangy and dissonant, but adding a low-pass filter (LPF) at a warm 90hz softens its clang into a warm rumble: const rumbleLPF = new Tone.Filter(90, "lowpass"); const rumblePanner = new Tone.Panner(); if(!window.tireRumble) { window.tireRumble = new Tone.MembraneSynth({ envelope: { attack: 0.1, decay: 0.0, sustain: 1, release: 0.1 } }) .connect(rumbleLPF) .toDestination(); } The muffler exhaust sound was a bit more nuanced. Being personally cognizant of the importance of harmonics in vehicle vibrations, both desirable and not, the FM synth seemed a fitting choice: const exhaustHPF = new Tone.Filter(45, "highpass"); const exhaustLPF = new Tone.Filter(125, "lowpass"); const exhaustPanner = new Tone.Panner(); if (!window.exhaust) { window.exhaust = new Tone.FMSynth({ envelope: { attack: 0.001, decay: 0, sustain: 1, release: 0.005 }, modulationIndex: 40, harmonicity: 3, volume: -6 }) .connect(exhaustHPF) .connect(exhaustLPF) .connect(exhaustPanner) .toDestination(); } Both of these synths run in Storyline's update() loop with some logic dictating when and how they activate. Of particular note (indeed, my solitary seed of this whole project) is scaling the pitch played by the synthesizer with the speed variable: // triggerAttackRelease(note, duration, time?, velocity?): this window.exhaust.triggerAttackRelease(5 + getVar('speed')/100, "8n", now); The minimum of 5 guarantees a lovely purr. "8n" refers to eighth notes, the type of note played over and over again by Storyline. A gentle logarithmic function might better emulate a gear nearing a maximum, and a few conditional ones stair-cased together could emulate the sound of changing gears… The explosion sound effect and music are stock I found online, though I did adjust the song's stereo field to carve more space in the center for the sound effects. Naturally both the music and the explosion can also be crafted in Tone.js--I entertained the idea of the off-road sound effect only ever being out-of-sync with the music to further layer in negative feedback--but I did what I aimed to. I've wanted for a very long time to procedurally synthesize responsive audio at runtime and this proof-of-concept hopefully helps demonstrate such utility.208Views5likes2CommentsMars Base Demo: Storyline Integration with Blender 360° Panoramic Renders
I created this short e-learning demo for my Upwork portfolio, showcasing how to integrate custom-modeled 360° environments into Articulate Storyline. I wanted something unique, short, and interesting. Project Rationale: I chose a 3D-printed Mars habitat because the concept aligns with realistic solutions for future human life on Mars, making the demo feel grounded and relevant. To give the base a compelling and genuine purpose, I focused the learning content on growing crops on Mars (Martian agriculture). This subject was a natural fit, leveraging the extensive agriculture knowledge I've gained working with a client over the years, which is also why the base is appropriately named Rhizome Station. Technical Breakdown: 3D Modeling: The Mars base was modeled in Blender (free and open-source software). I created procedural textures for most of the scene and Quixel Megascans assets for distant rocks and lab flora. I also used Blender to model the 3D landscape you see as a backdrop on the computer screens. Interaction Assets: For the icons and images seen within the interactions, these were all done in Storyline using the built-in icons and AI images. Interaction: The experience uses seven linked 360° renders. To track progress, I rendered the images with a start/finish state, allowing a 'completion' green tick to display when the user returns to the main lab view. Audio: Narration was created using Storyline's AI voices. Future Plans: I'm planning to expand this into a full e-learning experience. The expanded course will start with the user in Earth's orbit learning about the Hohmann Transfer Orbit, and once they reach the base, they'll be able to explore different rooms (the living quarters are already built) and go on outdoor missions. I'll update the community when that larger version is complete, but it likely won't be until next year. Check out the Demo here.395Views5likes5CommentsClaude Shannon Explainer – Interactive Overview of the Father of Information
Hi everyone, This interactive module offers a short introduction to Claude Shannon’s key ideas and how they shaped modern computing and communication. The module is part of my portfolio and was designed to demonstrate accessible design, custom illustration, and learner-driven interaction in Storyline. I’d appreciate your feedback on: Navigation and overall flow Accessibility (especially for screen readers) Visual design and pacing Any suggestions for improving engagement or polish Here’s the link: Claude Shannon Explainer Thanks for taking the time to have a look. I’m new to the community and would welcome any thoughts or suggestions.183Views2likes3CommentsAssemble the Machine: Building with Merge Shapes in Storyline
This project was my response to an eLearning Weekly Challenge focused on using the new Merge Shapes feature in Articulate Storyline. What started as a quick creative experiment turned into a surprisingly satisfying puzzle-building experience! The Build: Creating the Machine I began by designing the main machine using Storyline’s Merge Shapes functions, combining, subtracting, and intersecting shapes to form unique components. The process felt a bit like digital metalwork, piece by piece forming into something that actually looked mechanical! Some shapes were built entirely with merge functions, while others were enhanced using Storyline icons to save time, a little creative shortcut that kept the project moving while maintaining consistency in style. From Design to Functionality Once the main machine was built, I duplicated the slide to use as a reference layout. This duplicate became my “blueprint”, essential when I began disassembling the machine to turn it into an interactive drag-and-drop activity. Each part was separated, turned into a draggable object, and then matched to its original position using drop states. Having that duplicate slide open side-by-side made it much easier to ensure perfect alignment and placement, and saved a lot of trial and error. The Final Interaction Learners are invited to assemble the machine by dragging each piece into its correct position. Once everything’s aligned, the machine powers up, a small visual and audio payoff for the effort! You can check out the full example in the Storyline file I’ve uploaded with this article. Lessons Learned Merge Shapes is an underrated powerhouse — perfect for creating custom illustrations directly inside Storyline. Always duplicate your “complete” layout before disassembling — it’s the best visual guide when rebuilding drag-and-drop interactions. Blending icons and shapes keeps things efficient without sacrificing creativity. Shout-Outs A big thanks to the Articulate Community — your shared examples and feedback are such an incredible source of learning and inspiration. And of course, gratitude to the eLearning Weekly Challenges team for sparking these creative build experiments in the first place! Disclaimer: The voiceover in the example was AI-generated, and I used ChatGPT for story brainstorming and script development support. Blog Post: https://niamha.wordpress.com/2025/09/04/assemble-the-machine/ Check it out in Articulate Review here: https://360.articulate.com/review/content/8902c41c-3cc3-40cb-808f-2f572a34f0b0/review About Me: https://niamha.wordpress.com/about/240Views4likes2Comments🧙♀️✨ Magical Coffee-Bar: Fan-Inspired Drink Simulator
The project were created for Articulate Challenge #524 – How to Brew the Best Coffee & Espresso Drinks Welcome to Crossroads Cafe, a whimsical drag-and-drop interaction where learners take on the role of a barista serving enchanted drinks to guests from across fictional universes. ☕ Project Concept In this interactive experience, players are left in charge of a magical coffee shop after the senior barista is called away on urgent business. One by one, guests arrive — each inspired by beloved characters from books, shows, and movies — and place their orders for fan-favorite drinks like Butterbeer, Blue Milk, and Miruvor. 🎮 Gameplay Drag & Drop Mechanics: Learners select ingredients and place them into a mug in the correct order. Hints Available: A recipe card is available for reference if the learner needs help. Serve & Feedback: Once the drink is assembled, the learner presses “Serve” and receives themed feedback from the guest — magical praise or playful critique. Progress Tracking: The game tracks how many drinks were made correctly, with a final summary and stylized feedback. 🎨 Design Style Classic 2D animation inspired by mid-20th century cartoons Watercolor textures with bold outlines Magical UI elements and whimsical decor Custom illustrations for guests and environment 🧙♂️ Senior Barista’s Message “Ah, welcome, apprentice! The guests are lining up, and the steam is rising — it’s time to brew some magic. Drag the correct ingredients into the mug, press ‘Serve’ when ready, and consult the recipe card if you need a hint. Every cup carries a little enchantment — brew wisely!” ⚠️ Disclaimer All visual assets in this project were created using AI tools and custom design. Guest characters are original creations inspired by popular fictional archetypes and do not directly represent or reproduce any copyrighted characters. This project is intended for educational and creative demonstration purposes only. Crossroads Cafe246Views2likes3CommentsEducational Escape Game: Thriller/Horror
As a part of my internship, I designed an escape game for the students of the faculty of medecine to practice their English Vocabulary and jargon. It was met with huge success, and I thought of sharing it with you. The full game takes around 4 hours to finish, it has 3 endings, and it utilizes aspects of incidental learning as the main methodology. Let me know what you think, I'll be gladly sharing my experience with the community. https://360.eu.articulate.com/review/content/a2a4e10d-ceed-4f9b-b92b-422848c850f0/review590Views3likes2Comments