Blog*

Category
Agency News
Topic
New Client Win
1 min read
Category
Agency News
Topic
Awards Shortlist
1 min read
Category
Advertising
Topic
Campaigns
5 mins read
Category
Advertising
Topic
Campaigns
5 mins read
Category
Insight
Topic
Artificial Intelligence
6 mins read
Category
Advertising
Topic
Campaigns of the Month
3 min read
Category
Insight
Topic
Artificial Intelligence
4 min read
Category
Content Marketing
Digital Marketing
Insight
Topic
AI, SEO, GEO, and AEO
4 min read
Category
Advertising
Topic
Campaigns
10 min read
Category
Agency News
Topic
New Hire
1 min read
Category
Advertising
Topic
Campaigns
5 mins read
Category
Experiential
Topic
Experiential Activation
5 mins read
Category
Advertising
Topic
Campaigns of the Month
4 mins read
Category
Agency News
Topic
Agency News
1 min read
Category
Branding
Insight
Topic
Branding
5 min read
Category
Agency News
Awards
Topic
Award Winner
1 min read
Category
Advertising
Insight
Topic
Big Ideas
10 min read
Category
Advertising
Topic
Campaigns of the Month
5 min read
Category
Digital Marketing
Insight
Topic
5 min read
Category
Advertising
Topic
Campaigns of the Month
5 min read
Category
Agency News
Awards
Topic
Awards Nominations
2 mins read
Category
Advertising
Topic
Campaigns of the Month
3 mins read
Category
Experiential
Insight
Topic
Maximising experiential’s PR and social media impact
5 mins read
Category
Agency News
Topic
New Client Win
3 mins read
Category
Branding
Topic
Importance of Brand DNA
5 mins read
Category
Advertising
Topic
Campaigns of the Month
10 mins read
Category
Agency News
Topic
Joseph Holt Brewery
2 mins read
Category
Content Marketing
Topic
Content Strategy
10 mins read
Category
Insight
Topic
TikTok’s Impact on the Traditional Sales Funnel
5 mins read
Category
Advertising
Topic
Campaigns of the Month
10 mins read
Category
Agency News
Topic
New Client Win
2 mins read
Category
Branding
Topic
The trend of minimal makeovers.
5 mins read
tag console.log("=== MODEL VIEWER DIAGNOSTICS ==="); // Check WebAssembly support console.log("WebAssembly support:", typeof WebAssembly); // Check if model-viewer script is loaded at all const modelViewerScripts = document.querySelectorAll('script[src*="model-viewer"]'); console.log("Found model-viewer scripts:", modelViewerScripts.length); modelViewerScripts.forEach(script => { console.log("Script:", script.src); }); // Check if model-viewer custom element is defined console.log("model-viewer custom element defined:", !!customElements.get('model-viewer')); // Check for model-viewer elements const modelViewers = document.querySelectorAll('model-viewer'); console.log("Found model-viewer elements:", modelViewers.length); // Check if we can access model-viewer elements properly if (modelViewers.length > 0) { console.log("First model-viewer src:", modelViewers[0].src); console.log("First model-viewer innerHTML:", modelViewers[0].innerHTML); } // Try manually loading model-viewer script const script = document.createElement('script'); script.type = 'module'; script.src = 'https://cdn.jsdelivr.net/npm/@google/model-viewer@2.1.1/dist/model-viewer.min.js'; script.onload = function() { console.log("Manual model-viewer script loaded"); console.log("Custom element now defined:", !!customElements.get('model-viewer')); // Try to update the models after script is loaded setTimeout(() => { const updatedModelViewers = document.querySelectorAll('model-viewer'); console.log("Model viewers after load:", updatedModelViewers.length); if (updatedModelViewers.length > 0) { // Force a reload of the first model const firstModel = updatedModelViewers[0]; const originalSrc = firstModel.src; console.log("Attempting to reload model with src:", originalSrc); // Force a reload cycle firstModel.src = ''; setTimeout(() => { firstModel.src = originalSrc; console.log("Model src reset to:", originalSrc); }, 100); } }, 500); }; document.head.appendChild(script);