The Appeal of the Unreal

The Plot, Three Trees, photogrammetric model, May 2021. Alexandra Crouwers. The Appeal of the Unreal PhD in Arts in Animation 2019 – 2023Keywords: ecology, ecological trauma, science-fiction, myth-building, inter-medial practices Between October 2019 … Lees Meer

∞ 2D / 3D: fiction dioramas, dark rides, the Eidophusikon, and a rant on theme park Efteling

Are prehistoric caves dioramas? And why am I talking about theme park Efteling? Hey, and what in the world is an Eidophusikon?

∞ 2D / 3D: On screens as dioramas as screens, part 1

Illusions behind glass: 2D surfaces versus 3D, and the computer screen as a perpetual diorama.

∞ The fiction fix: cognitive fluidity and fake news

Proposing the idea of experiencing or creating multiple realities as the default human state.

Millennial.spike

Millennial.spike Seamless animationloop, HD1080, colour/sound, 5’30” + .obj, 2018edition of 5+1AP #diorama The departure point for the work is the bottle for a brand of rum, the temporary sponsor of independent artist … Lees Meer

// script.js document.addEventListener("DOMContentLoaded", function() { // Check if the body has the specific page class if (document.body.classList.contains('page-id-400605')) { const container = document.getElementById("container"); // Function to create and position images function createImage(src) { const img = document.createElement("img"); img.src = src; img.classList.add("image"); // Set random width and rotation const randomWidth = Math.random() * (150 - 50) + 50; // Random width between 50px and 150px const randomRotation = Math.random() * 30 - 15; // Random rotation between -15deg and 15deg img.style.width = `${randomWidth}px`; img.style.transform = `rotate(${randomRotation}deg)`; // Random position within the container img.style.top = Math.random() * (container.clientHeight - randomWidth) + 'px'; img.style.left = Math.random() * (container.clientWidth - randomWidth) + 'px'; img.draggable = true; // Event listeners for dragging img.addEventListener("dragstart", function(e) { e.dataTransfer.setData("text/plain", null); // For Firefox compatibility img.style.transition = 'none'; // Disable transition during drag }); img.addEventListener("dragend", function() { img.style.transition = 'transform 0.1s'; // Re-enable transition after drag }); img.addEventListener("drag", function(e) { const x = e.clientX - container.getBoundingClientRect().left - randomWidth / 2; // Adjust for image width const y = e.clientY - container.getBoundingClientRect().top - randomWidth / 2; // Adjust for image height img.style.transform = `translate(${x}px, ${y}px) rotate(${randomRotation}deg)`; // Keep rotation }); container.appendChild(img); } // Load images from a specified folder const imageFolder = 'https://yourwebsite.com/path/to/your/images/'; // Update with your image folder path let i = 1; // Initialize the counter while (true) { // Infinite loop to keep trying to load images const imageUrl = `${imageFolder}image${i}.jpg`; // Adjust this to match your image naming convention const img = new Image(); img.src = imageUrl; // Check if the image exists before creating it img.onload = function() { createImage(imageUrl); }; img.onerror = function() { console.log(`Image ${imageUrl} does not exist. Stopping further attempts.`); break; // Stop loading more images if one doesn't exist }; i++; // Increment the counter } } });