neural-canvas / index.html
GooGooPanda's picture
Artistic Intelligence Re-imagining AI application in art The term Artificial Intelligence automatically invokes negative associations in my mind. Something artificial is not authentic, original or real, but a forgery or a fake imitation of reality. Art as an expression is a very subjective thing. To me, art has always been defined by an emotional response. Does the artwork invoke a strong feeling? Positive or negative, true art should not leave a person indifferent. AI models are "trained" on enormous amounts of data. A large part of that data consists of art created throughout human existence, hundreds of thousands of paintings and drawings, sculptures and other creative expressions are part of this database. A living gallery where artists submit their work to become part of an ever-evolving tapestry of AI generated art. Large models will be fine tuned on artists work, creating new strands of art. The spectators are part of the story, photographed upon entry, their portraits will be integrated into Loras in real time, mini trained models that are mixed into the main database and manifested in the art. Patrons of the gallery will see representations of themselves in the artwork showcased withing the gallery. These methods to locally train large generative AI models are just the tip of the iceberg when it comes to innovation and adaptation of Ai in the creative field. The goal is to utilize the powerful AI tools not as a means of art creation and interpretation but as a catalyst and a vehicle to bring new and exciting ideas to life. The computational speed and generative power of large generative models are constantly improving and with a wider variety of tools available to the public every day, the sky is no longer the limit. Creating an interactive art gallery is a way to integrate the viewer into the creative process, trully immersing them into the art itself. The gallery patrons will have the ability to manipulate multiple aspects of the generative art in real time. By accesing terminals located throughout the space, the viewers can input concepts and terms that will affect the main generation happening on the walls. By entering prompts like "Summer", "War", or even "Puppies", these terms will trigger the model to infuse the live generation with new visual elements that will transform the narrative and guide it into new dimensions. This is a proposal for a physical gallery space, it should include dimensions and technical specifications, explain the process and show a 3d model of the space - Initial Deployment
dd1a104 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Neural Canvas - AI Art Gallery</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.gallery-wall {
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 400 400"><rect width="400" height="400" fill="black"/><path d="M0,0 L400,400 M400,0 L0,400" stroke="rgba(255,255,255,0.1)" stroke-width="1"/></svg>');
background-size: 40px 40px;
}
.ai-art-piece {
transition: all 0.5s ease;
background-size: cover;
background-position: center;
animation: artPulse 15s infinite alternate;
}
@keyframes artPulse {
0% { opacity: 0.85; }
100% { opacity: 1; }
}
.interactive-terminal {
box-shadow: 0 0 20px rgba(125, 211, 252, 0.5);
}
#liveArt {
transition: background-image 2s ease-in-out;
}
.floating-element {
animation: float 6s ease-in-out infinite;
}
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-15px); }
100% { transform: translateY(0px); }
}
.delay-1 { animation-delay: 0.5s; }
.delay-2 { animation-delay: 1s; }
.delay-3 { animation-delay: 1.5s; }
</style>
</head>
<body class="bg-gray-900 text-white font-sans">
<!-- Navigation -->
<nav class="fixed w-full bg-black bg-opacity-90 z-50 py-4 px-6 flex justify-between items-center">
<div class="flex items-center space-x-2">
<i class="fas fa-brain text-2xl text-cyan-300"></i>
<h1 class="text-xl font-bold bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">NEURAL CANVAS</h1>
</div>
<div class="hidden md:flex space-x-6">
<a href="#concept" class="hover:text-cyan-300 transition">Concept</a>
<a href="#model" class="hover:text-cyan-300 transition">3D Model</a>
<a href="#tech" class="hover:text-cyan-300 transition">Technology</a>
<a href="#experience" class="hover:text-cyan-300 transition">Experience</a>
</div>
<button class="md:hidden text-2xl">
<i class="fas fa-bars"></i>
</button>
</nav>
<!-- Hero Section -->
<section class="pt-24 pb-16 px-6 md:px-12 lg:px-24 bg-gradient-to-b from-gray-900 to-gray-800">
<div class="container mx-auto flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h1 class="text-4xl md:text-5xl lg:text-6xl font-bold mb-6">
<span class="bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">Artistic Intelligence</span><br>
Reimagining AI in Art
</h1>
<p class="text-lg md:text-xl mb-8 text-gray-300 leading-relaxed">
An immersive gallery where AI becomes a collaborative partner in artistic expression, blending human creativity with computational power.
</p>
<div class="flex space-x-4">
<a href="#concept" class="bg-cyan-500 hover:bg-cyan-600 text-white px-6 py-3 rounded-lg font-medium transition transform hover:scale-105">Explore Concept</a>
<a href="#model" class="border border-cyan-500 text-cyan-300 hover:bg-cyan-900 hover:bg-opacity-30 px-6 py-3 rounded-lg font-medium transition transform hover:scale-105">3D Tour</a>
</div>
</div>
<div class="md:w-1/2 relative">
<div class="gallery-wall w-full h-80 md:h-96 rounded-xl overflow-hidden relative">
<div id="liveArt" class="absolute inset-0 flex items-center justify-center">
<div id="artKeywords" class="absolute bottom-4 left-4 flex flex-wrap gap-2">
<span class="bg-black bg-opacity-50 px-3 py-1 rounded-full text-sm">portrait</span>
<span class="bg-black bg-opacity-50 px-3 py-1 rounded-full text-sm">surreal</span>
<span class="bg-black bg-opacity-50 px-3 py-1 rounded-full text-sm">cyberpunk</span>
</div>
</div>
<div id="viewerFace" class="absolute top-1/4 left-1/3 w-16 h-16 rounded-full border-2 border-cyan-300 opacity-0 transition-opacity duration-500"></div>
</div>
<div class="absolute -bottom-4 -right-4 bg-purple-500 w-24 h-24 rounded-full opacity-20 filter blur-xl"></div>
<div class="absolute -top-4 -left-4 bg-cyan-400 w-20 h-20 rounded-full opacity-30 filter blur-xl"></div>
</div>
</div>
</section>
<!-- Concept Section -->
<section id="concept" class="py-20 px-6 md:px-12 lg:px-24 bg-gray-800">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">
<span class="bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">The Concept</span>
</h2>
<div class="w-20 h-1 bg-gradient-to-r from-cyan-400 to-purple-500 mx-auto"></div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-10">
<div>
<div class="flex items-start mb-8">
<div class="bg-cyan-900 bg-opacity-50 p-3 rounded-lg mr-4">
<i class="fas fa-user-astronaut text-2xl text-cyan-300"></i>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Human-AI Collaboration</h3>
<p class="text-gray-300">The gallery creates a symbiotic relationship between artists and AI. Human artists contribute their work to train specialized models, which then generate new artistic interpretations.</p>
</div>
</div>
<div class="flex items-start mb-8">
<div class="bg-purple-900 bg-opacity-50 p-3 rounded-lg mr-4">
<i class="fas fa-portrait text-2xl text-purple-300"></i>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Audience Integration</h3>
<p class="text-gray-300">Visitors are instantly photographed upon entry. These portraits become part of the dataset that influences the ongoing art generation, creating personalized connections to the artwork.</p>
</div>
</div>
</div>
<div>
<div class="flex items-start mb-8">
<div class="bg-blue-900 bg-opacity-50 p-3 rounded-lg mr-4">
<i class="fas fa-sliders-h text-2xl text-blue-300"></i>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Interactive Elements</h3>
<p class="text-gray-300">Terminals throughout the gallery allow visitors to input text prompts that immediately influence the artwork. The system interprets these concepts and evolves the visual narrative.</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-pink-900 bg-opacity-50 p-3 rounded-lg mr-4">
<i class="fas fa-project-diagram text-2xl text-pink-300"></i>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Continuous Evolution</h3>
<p class="text-gray-300">The art never remains static. It responds to visitor input, time of day, environmental factors and other parameters, creating a truly living exhibition.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- 3D Model Section -->
<section id="model" class="py-20 px-6 md:px-12 lg:px-24 bg-gray-900">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">
<span class="bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">Gallery Space Design</span>
</h2>
<div class="w-20 h-1 bg-gradient-to-r from-cyan-400 to-purple-500 mx-auto"></div>
<p class="text-gray-400 mt-4 max-w-2xl mx-auto">The physical gallery space is designed for optimal interaction with the AI system, creating an immersive environment that encourages participation.</p>
</div>
<div class="flex flex-col lg:flex-row gap-10 mb-16">
<div class="lg:w-1/2">
<div class="bg-gray-800 rounded-xl p-8 mb-8 relative overflow-hidden">
<div class="absolute -top-32 -right-32 w-64 h-64 bg-cyan-500 rounded-full filter blur-3xl opacity-20"></div>
<div class="relative z-10">
<h3 class="text-2xl font-bold mb-6">Floor Plan & Dimensions</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<p class="text-gray-400">Total Area:</p>
<p class="text-xl font-medium">1,800 sq ft</p>
</div>
<div>
<p class="text-gray-400">Main Exhibition:</p>
<p class="text-xl font-medium">30' x 50'</p>
</div>
<div>
<p class="text-gray-400">Entrance Area:</p>
<p class="text-xl font-medium">20' x 20'</p>
</div>
<div>
<p class="text-gray-400">Ceiling Height:</p>
<p class="text-xl font-medium">12'</p>
</div>
</div>
</div>
</div>
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -bottom-32 -left-32 w-64 h-64 bg-purple-500 rounded-full filter blur-3xl opacity-20"></div>
<div class="relative z-10">
<h3 class="text-2xl font-bold mb-6">Technical Specifications</h3>
<div class="space-y-6">
<div>
<h4 class="font-medium mb-1">Projection System</h4>
<p class="text-gray-400">6 x 10K lumen laser projectors with edge-blending for seamless wall coverage.</p>
</div>
<div>
<h4 class="font-medium mb-1">Camera System</h4>
<p class="text-gray-400">12 x 4K cameras for visitor capture and real-time processing.</p>
</div>
<div>
<h4 class="font-medium mb-1">Computing</h4>
<p class="text-gray-400">Dedicated server with 4x RTX 6000 GPUs for model inference and generation.</p>
</div>
</div>
</div>
</div>
</div>
<div class="lg:w-1/2">
<div class="bg-gray-800 rounded-xl p-8 h-full flex flex-col">
<h3 class="text-2xl font-bold mb-6">Interactive 3D Model</h3>
<div class="bg-black bg-opacity-50 rounded-lg overflow-hidden relative flex-1 flex items-center justify-center">
<img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='600' height='400' viewBox='0 0 600 400'><rect width='600' height='400' fill='%23222'/><path d='M0,0 L600,400 M600,0 L0,400' stroke='%23333' stroke-width='1'/><circle cx='300' cy='200' r='100' fill='none' stroke='%23ddd' stroke-width='2'/><rect x='150' y='100' width='300' height='200' fill='none' stroke='%23333' stroke-width='2' stroke-dasharray='5,5'/><text x='300' y='220' font-family='Arial' font-size='14' fill='%23999' text-anchor='middle'>Interactive Gallery Model Would Appear Here</text></svg>" alt="3D Model Visualization" class="w-full h-full object-cover">
<button class="absolute bottom-4 right-4 bg-cyan-600 hover:bg-cyan-700 text-white px-4 py-2 rounded-lg flex items-center space-x-2 transition">
<i class="fas fa-expand"></i>
<span>Explore Full Screen</span>
</button>
</div>
<div class="mt-6">
<a href="#" class="inline-flex items-center text-cyan-400 hover:text-cyan-300 transition">
<span>Download Architectural Plans (PDF)</span>
<i class="fas fa-download ml-2"></i>
</a>
</div>
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="bg-gray-800 rounded-xl p-6">
<div class="bg-cyan-900 bg-opacity-30 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
<i class="fas fa-users text-cyan-300 text-xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Visitor Flow</h3>
<p class="text-gray-400">The layout is designed to guide visitors naturally through the immersive experience without bottlenecks, with a capacity for 40 visitors/hour.</p>
</div>
<div class="bg-gray-800 rounded-xl p-6">
<div class="bg-purple-900 bg-opacity-30 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
<i class="fas fa-projector text-purple-300 text-xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Projection Mapping</h3>
<p class="text-gray-400">The gallery walls serve as dynamic canvases with projection-mapped surfaces that respond to visitor interactions in real-time.</p>
</div>
<div class="bg-gray-800 rounded-xl p-6">
<div class="bg-pink-900 bg-opacity-30 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
<i class="fas fa-terminal text-pink-300 text-xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Interactive Nodes</h3>
<p class="text-gray-400">10 interactive terminals are strategically placed throughout the space, each with touch and gesture recognition capabilities.</p>
</div>
</div>
</div>
</section>
<!-- Technology Section -->
<section id="tech" class="py-20 px-6 md:px-12 lg:px-24 bg-gray-800">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">
<span class="bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">Technical Implementation</span>
</h2>
<div class="w-20 h-1 bg-gradient-to-r from-cyan-400 to-purple-500 mx-auto"></div>
<p class="text-gray-400 mt-4 max-w-2xl mx-auto">Behind the scenes: The cutting-edge technology powering this artistic experience.</p>
</div>
<div class="flex flex-col lg:flex-row gap-10 mb-16">
<div class="lg:w-2/3">
<div class="bg-gray-900 rounded-xl p-8 relative overflow-hidden h-full">
<div class="absolute -top-32 -left-32 w-64 h-64 bg-purple-500 rounded-full filter blur-3xl opacity-20"></div>
<div class="relative z-10">
<h3 class="text-2xl font-bold mb-6">System Architecture</h3>
<div class="space-y-8">
<div>
<h4 class="font-medium text-lg mb-2 flex items-center">
<span class="w-3 h-3 bg-cyan-400 rounded-full mr-2"></span>
Input Layer
</h4>
<p class="text-gray-400">Visitor cameras capture portraits, body position and facial expressions. Microphones collect ambient sounds which can influence generation.</p>
</div>
<div>
<h4 class="font-medium text-lg mb-2 flex items-center">
<span class="w-3 h-3 bg-blue-400 rounded-full mr-2"></span>
Processing Layer
</h4>
<p class="text-gray-400">Multiple fine-tuned Stable Diffusion models run simultaneously, mixing artist datasets with visitor inputs. A control module coordinates generations.</p>
</div>
<div>
<h4 class="font-medium text-lg mb-2 flex items-center">
<span class="w-3 h-3 bg-purple-400 rounded-full mr-2"></span>
Output Layer
</h4>
<p class="text-gray-400">The central projection system displays the evolving artwork, while individual terminals provide personalized previews of generative results.</p>
</div>
</div>
</div>
</div>
</div>
<div class="lg:w-1/3">
<div class="bg-gray-900 rounded-xl p-8 h-full flex flex-col">
<h3 class="text-2xl font-bold mb-6">Technical Stack</h3>
<div class="space-y-6">
<div class="flex items-start">
<div class="bg-cyan-900 bg-opacity-50 p-2 rounded mr-4">
<i class="fas fa-microchip text-cyan-300"></i>
</div>
<div>
<h4 class="font-medium mb-1">Generative Models</h4>
<p class="text-gray-400 text-sm">Stable Diffusion XL + ControlNet + LoRA adapters for artist/styles</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-blue-900 bg-opacity-50 p-2 rounded mr-4">
<i class="fas fa-server text-blue-300"></i>
</div>
<div>
<h4 class="font-medium mb-1">Hardware</h4>
<p class="text-gray-400 text-sm">GPU Cluster (4x RTX 6000), Media Servers, 4K Camera Array</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-purple-900 bg-opacity-50 p-2 rounded mr-4">
<i class="fas fa-code text-purple-300"></i>
</div>
<div>
<h4 class="font-medium mb-1">Software</h4>
<p class="text-gray-400 text-sm">Custom Python middleware, OpenCV for tracking, TouchDesigner for projection mapping</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-pink-900 bg-opacity-50 p-2 rounded mr-4">
<i class="fas fa-network-wired text-pink-300"></i>
</div>
<div>
<h4 class="font-medium mb-1">Networking</h4>
<p class="text-gray-400 text-sm">10Gbit fiber network connecting all devices with <3ms latency</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="bg-gray-900 rounded-xl p-8">
<h3 class="text-2xl font-bold mb-6 text-center">Interactive Demo</h3>
<div class="flex flex-col lg:flex-row gap-8">
<div class="lg:w-1/2">
<div id="interactiveTerminal" class="interactive-terminal bg-black rounded-lg p-6 h-96 relative overflow-hidden">
<div class="absolute inset-0 opacity-20" style="background: radial-gradient(circle at center, rgba(125,211,252,0.8) 0%, transparent 70%);"></div>
<div class="relative z-10 h-full flex flex-col">
<div class="flex items-center mb-4 space-x-2">
<div class="w-3 h-3 bg-red-500 rounded-full"></div>
<div class="w-3 h-3 bg-yellow-500 rounded-full"></div>
<div class="w-3 h-3 bg-green-500 rounded-full"></div>
</div>
<div class="flex-1 bg-gray-900 rounded p-4 mb-4 font-mono text-green-400 overflow-y-auto text-sm">
<p>~$ INIT NEURAL_CANVAS_INTERFACE</p>
<p class="my-2">Welcome to Neural Canvas interactive terminal</p>
<p class="my-2">Enter concepts below to influence generation:</p>
<div id="terminalOutput" class="mt-4"></div>
<div id="terminalCursor" class="inline-block w-2 h-4 bg-green-400"></div>
</div>
<div class="flex">
<input type="text" id="terminalInput" placeholder="Enter prompt (e.g., futuristic, melancholy, abstract)" class="flex-1 bg-gray-800 text-white px-4 py-2 rounded-l focus:outline-none focus:ring-2 focus:ring-cyan-500">
<button id="submitTerminal" class="bg-cyan-600 hover:bg-cyan-700 px-4 py-2 rounded-r transition">Submit</button>
</div>
</div>
</div>
</div>
<div class="lg:w-1/2">
<div class="bg-gray-700 rounded-lg overflow-hidden h-96 relative">
<div id="activeArtwork" class="ai-art-piece h-full w-full flex items-center justify-center transition-all duration-1000" style="background-image: url('https://source.unsplash.com/random/800x600/?abstract,art');">
<div class="absolute inset-0 bg-black bg-opacity-40 flex items-center justify-center">
<p class="text-white text-lg font-medium">Artwork will evolve based on terminal input</p>
</div>
</div>
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
<p id="activePrompt" class="text-sm">Current influence: portrait, surreal, cyberpunk</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Experience Section -->
<section id="experience" class="py-20 px-6 md:px-12 lg:px-24 bg-gray-900">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">
<span class="bg-gradient-to-r from-cyan-300 to-purple-400 bg-clip-text text-transparent">Visitor Experience</span>
</h2>
<div class="w-20 h-1 bg-gradient-to-r from-cyan-400 to-purple-500 mx-auto"></div>
<p class="text-gray-400 mt-4 max-w-2xl mx-auto">A step-by-step journey through the Neural Canvas gallery experience.</p>
</div>
<div class="relative">
<div class="absolute left-4 md:left-1/2 h-full w-0.5 bg-gradient-to-b from-cyan-400 to-purple-500"></div>
<div class="space-y-12">
<!-- Step 1 -->
<div class="relative flex flex-col md:flex-row items-center gap-8">
<div class="hidden md:block md:w-1/2"></div>
<div class="md:w-1/2">
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -top-8 -right-8 w-24 h-24 bg-cyan-500 rounded-full filter blur-xl opacity-20"></div>
<div class="flex items-start">
<div class="bg-cyan-900 bg-opacity-50 p-3 rounded-lg mr-4">
<span class="text-xl font-bold text-cyan-300">1</span>
</div>
<div>
<h3 class="text-xl font-bold mb-3">Entry & Capture</h3>
<p class="text-gray-400">Upon entering, discreet cameras capture your portrait and body shape. This data is instantly processed to create a unique digital signature that will influence the art throughout your visit.</p>
</div>
</div>
</div>
</div>
<div class="absolute left-0 md:left-1/2 flex items-center justify-center -ml-5 md:-ml-4 w-10 h-10 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 text-white font-bold z-10">
1
</div>
</div>
<!-- Step 2 -->
<div class="relative flex flex-col md:flex-row items-center gap-8">
<div class="md:w-1/2 order-2 md:order-1">
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -bottom-8 -left-8 w-24 h-24 bg-purple-500 rounded-full filter blur-xl opacity-20"></div>
<div class="flex items-start">
<div class="bg-purple-900 bg-opacity-50 p-3 rounded-lg mr-4">
<span class="text-xl font-bold text-purple-300">2</span>
</div>
<div>
<h3 class="text-xl font-bold mb-3">Initial Integration</h3>
<p class="text-gray-400">As you enter the main gallery, you can view your processed portrait at a welcome terminal. The system explains how your unique features have been translated into artistic parameters.</p>
</div>
</div>
</div>
</div>
<div class="hidden md:block md:w-1/2 order-1 md:order-2"></div>
<div class="absolute left-0 md:left-1/2 flex items-center justify-center -ml-5 md:-ml-4 w-10 h-10 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 text-white font-bold z-10">
2
</div>
</div>
<!-- Step 3 -->
<div class="relative flex flex-col md:flex-row items-center gap-8">
<div class="hidden md:block md:w-1/2"></div>
<div class="md:w-1/2">
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -top-8 -right-8 w-24 h-24 bg-pink-500 rounded-full filter blur-xl opacity-20"></div>
<div class="flex items-start">
<div class="bg-pink-900 bg-opacity-50 p-3 rounded-lg mr-4">
<span class="text-xl font-bold text-pink-300">3</span>
</div>
<div>
<h3 class="text-xl font-bold mb-3">Art Interaction</h3>
<p class="text-gray-400">At various interactive terminals throughout the space, you can input words, phrases or select from artistic themes to directly influence the evolving artwork on the walls.</p>
</div>
</div>
</div>
</div>
<div class="absolute left-0 md:left-1/2 flex items-center justify-center -ml-5 md:-ml-4 w-10 h-10 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 text-white font-bold z-10">
3
</div>
</div>
<!-- Step 4 -->
<div class="relative flex flex-col md:flex-row items-center gap-8">
<div class="md:w-1/2 order-2 md:order-1">
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -bottom-8 -left-8 w-24 h-24 bg-blue-500 rounded-full filter blur-xl opacity-20"></div>
<div class="flex items-start">
<div class="bg-blue-900 bg-opacity-50 p-3 rounded-lg mr-4">
<span class="text-xl font-bold text-blue-300">4</span>
</div>
<div>
<h3 class="text-xl font-bold mb-3">Personalized Elements</h3>
<p class="text-gray-400">As you move through the gallery, subtle elements based on your digital signature appear in the artwork. With special AR glasses (optional), you can identify your unique contributions.</p>
</div>
</div>
</div>
</div>
<div class="hidden md:block md:w-1/2 order-1 md:order-2"></div>
<div class="absolute left-0 md:left-1/2 flex items-center justify-center -ml-5 md:-ml-4 w-10 h-10 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 text-white font-bold z-10">
4
</div>
</div>
<!-- Step 5 -->
<div class="relative flex flex-col md:flex-row items-center gap-8">
<div class="hidden md:block md:w-1/2"></div>
<div class="md:w-1/2">
<div class="bg-gray-800 rounded-xl p-8 relative overflow-hidden">
<div class="absolute -top-8 -right-8 w-24 h-24 bg-green-500 rounded-full filter blur-xl opacity-20"></div>
<div class="flex items-start">
<div class="bg-green-900 bg-opacity-50 p-3 rounded-lg mr-4">
<span class="text-xl font-bold text-green-300">5</span>
</div>
<div>
<h3 class="text-xl font-bold mb-3">Exit & Reflection</h3>
<p class="text-gray-400">Before leaving, you receive a digital token containing the artworks most influenced by your presence. These can be accessed later via our online gallery.</p>
</div>
</div>
</div>
</div>
<div class="absolute left-0 md:left-1/2 flex items-center justify-center -ml-5 md:-ml-4 w-10 h-10 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 text-white font-bold z-10">
5
</div>
</div>
</div>
</div>
<div class="mt-16 text-center">
<div class="inline-block relative group">
<button class="bg-gradient-to-r from-cyan-500 to-blue-600 text-white px-8 py-4 rounded-full font-bold text-lg shadow-lg transform transition group-hover:scale-105 group-hover:shadow-xl">
Schedule Pilot Visit
</button>
<div class="absolute -inset-1 bg-gradient-to-r from-cyan-400 to-purple-500 rounded-full opacity-25 group-hover:opacity-50 blur transition duration-200"></div>
</div>
<p class="text-gray-500 mt-6">Limited pilot program launching Q1 2024</p>
</div>
</div>
</section>
<!-- Floating Elements -->
<div class="fixed top-1/4 left-10 w-8 h-8 rounded-full bg-cyan-400 opacity-20 floating-element delay-1"></div>
<div class="fixed top-2/3 right-16 w-12 h-12 rounded-full bg-purple-500 opacity-15 floating-element delay-2"></div>
<div class="fixed bottom-20 left-1/3 w-6 h-6 rounded-full bg-blue-400 opacity-25 floating-element delay-3"></div>
<script>
// Interactive terminal functionality
const terminalInput = document.getElementById('terminalInput');
const terminalOutput = document.getElementById('terminalOutput');
const submitTerminal = document.getElementById('submitTerminal');
const activeArtwork = document.getElementById('activeArtwork');
const activePrompt = document.getElementById('activePrompt');
const artKeywords = document.getElementById('artKeywords');
const viewerFace = document.getElementById('viewerFace');
// Sample prompts for the demo
const promptExamples = [
"surreal dreamscape with floating objects",
"cyberpunk city at night with neon lights",
"abstract expressionist composition with bold strokes",
"futuristic portrait with technological elements",
"melancholic landscape with dramatic lighting",
"geometric abstraction with vibrant colors",
"portrait blended with nature elements",
"sci-fi architecture with impossible geometry"
];
// Sample keywords for the demo
const keywordExamples = [
"surreal", "cyberpunk", "abstract", "futuristic", "portrait",
"landscape", "geometric", "melancholy", "vibrant", "dreamlike"
];
// Initialize with random keywords
updateKeywords();
// Terminal input handler
submitTerminal.addEventListener('click', handleTerminalSubmit);
terminalInput.addEventListener('keypress', (e) => {
if (e.key === 'Enter') handleTerminalSubmit();
});
function handleTerminalSubmit() {
const input = terminalInput.value.trim();
if (!input) return;
// Add input to terminal output
const promptLine = document.createElement('p');
promptLine.textContent = `> ${input}`;
terminalOutput.appendChild(promptLine);
// Show processing message
const processLine = document.createElement('p');
processLine.textContent = "Processing input and updating generation...";
terminalOutput.appendChild(processLine);
// Clear input
terminalInput.value = '';
// Update artwork (simulated)
setTimeout(() => {
// Remove loading line
terminalOutput.removeChild(processLine);
// Add response
const responseLine = document.createElement('p');
responseLine.textContent = "Artwork updated with new concept!";
terminalOutput.appendChild(responseLine);
// Scroll to bottom
terminalOutput.scrollTop = terminalOutput.scrollHeight;
// Change artwork (in a real implementation this would be connected to actual generation)
const randomArt = Math.floor(Math.random() * 10) + 1;
activeArtwork.style.backgroundImage = `url(https://source.unsplash.com/random/800x600/?${encodeURIComponent(input)},art${randomArt})`;
// Update prompt display
activePrompt.textContent = `Current influence: ${getRandomKeywords(3).join(', ')}`;
// Update keywords
updateKeywords();
}, 1500);
}
// Helper to get random keywords
function getRandomKeywords(count) {
const shuffled = [...keywordExamples].sort(() => 0.5 - Math.random());
return shuffled.slice(0, count);
}
// Update keywords display
function updateKeywords() {
const newKeywords = getRandomKeywords(3);
artKeywords.innerHTML = '';
newKeywords.forEach(keyword => {
const span = document.createElement('span');
span.className = 'bg-black bg-opacity-50 px-3 py-1 rounded-full text-sm';
span.textContent = keyword;
artKeywords.appendChild(span);
});
// Show viewer face occasionally (simulating visitor integration)
if (Math.random() > 0.7) {
viewerFace.style.opacity = '0.7';
setTimeout(() => {
viewerFace.style.opacity = '0';
}, 3000);
}
}
// Auto-fill example prompts for demo
let promptIndex = 0;
function cyclePromptExamples() {
terminalInput.placeholder = `Enter prompt (e.g., ${promptExamples[promptIndex]})`;
promptIndex = (promptIndex + 1) % promptExamples.length;
}
cyclePromptExamples();
setInterval(cyclePromptExamples, 3000);
// Simulate blinking cursor
setInterval(() => {
const cursor = document.getElementById('terminalCursor');
cursor.style.opacity = cursor.style.opacity === '0' ? '1' : '0';
}, 500);
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=GooGooPanda/neural-canvas" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>