Image Prompt & Brief Creator
Run ID: 69cc4b1b8f41b62a970c24372026-03-31Design
PantheraHive BOS
BOS Dashboard

Generate 10 professional AI image prompts, creative briefs, and visual direction specs

As your AI Image Prompt & Brief Creator, I have generated 10 comprehensive and professional concepts, each comprising a detailed AI Image Prompt, a Creative Brief, and specific Visual Direction Specifications. These are designed to provide clear, actionable guidance for generating high-quality AI imagery across diverse themes and styles.


1. Concept: Serene Biophilic Workspace

AI Image Prompt

"Architectural visualization of a minimalist, sun-drenched modern workspace, dominated by lush biophilic design elements. Floor-to-ceiling windows overlooking a vibrant urban garden. Natural light streaming in, casting soft shadows. Scandinavian aesthetic, clean lines, warm wood accents, white walls, comfortable ergonomic furniture, large indoor plants (monstera, fiddle-leaf fig). Focus on tranquility and productivity. Photorealistic, wide-angle interior shot, 8k, highly detailed, inviting atmosphere."

Creative Brief

  • Purpose: To illustrate an ideal, calming, and productive office environment for a modern co-working space brand or an architectural design firm specializing in sustainable interiors.
  • Target Audience: Professionals seeking inspiring workspaces, real estate developers, interior designers, and advocates for employee well-being.
  • Key Message: Modern design meets nature for enhanced productivity and peace. Work doesn't have to be stressful; it can be harmonious.
  • Desired Emotional Response: Calm, inspired, productive, refreshed, comfortable.

Visual Direction Specs

  • Dominant Colors: Muted greens, warm woods (light oak, birch), crisp whites, soft greys.
  • Lighting: Abundant natural daylight, soft and diffused. Minimal artificial lighting, perhaps indirect warm LED strips if necessary.
  • Composition: Wide-angle shot from a slightly elevated perspective, showcasing the open-plan layout and the connection to the outdoor garden. Clear sightlines, uncluttered.
  • Materials & Textures: Polished concrete floors, light wood panels, natural fibers (linen, wool) for upholstery, ceramic planters, glass.
  • Details: Subtle reflections in glass, dust motes in sunbeams (if applicable), perfectly arranged plants, a single high-design laptop on a desk, a ceramic mug.

2. Concept: Dynamic Cyberpunk Street Market

AI Image Prompt

"Vibrant, neon-drenched cyberpunk street market at night, bustling with diverse characters. Rain-slicked ground reflecting holographic advertisements and colorful vendor stalls. Intricate details of futuristic street food, augmented reality displays, and unique fashion. Gritty yet energetic atmosphere. Cinematic low-angle shot, volumetric fog, deep shadows, high contrast, 8k, photorealistic, Blade Runner aesthetic."

Creative Brief

  • Purpose: For a video game concept art, a sci-fi novel cover, or an advertising campaign for a tech-forward entertainment product. To immerse viewers in a rich, lived-in futuristic world.
  • Target Audience: Gamers, sci-fi enthusiasts, pop culture fans, artists.
  • Key Message: Explore the chaotic beauty and vibrant life of a technologically advanced, yet human, future.
  • Desired Emotional Response: Excitement, wonder, curiosity, slight unease, immersion.

Visual Direction Specs

  • Dominant Colors: Electric blues, vibrant purples, hot pinks, neon greens, deep oranges, contrasted with dark greys and blacks.
  • Lighting: Predominantly artificial neon signs, holographic projections, streetlights, and vendor stall lights. High contrast with deep, moody shadows.
  • Composition: Low-angle shot looking up through the market, emphasizing towering structures and the density of activity. Dynamic diagonals created by light trails and architectural elements.
  • Characters: Diverse, wearing futuristic clothing with integrated tech, some with visible cybernetic enhancements. Show movement and interaction.
  • Details: Intricate patterns on clothing, steam rising from food stalls, reflections of neon in puddles, subtle rain effects.

3. Concept: Abstract Data Flow Visualization

AI Image Prompt

"Abstract visualization of complex data flow, represented by glowing, interconnected neural pathways and geometric constructs in a dark, infinite space. Ethereal light trails, swirling particles, and translucent, overlapping layers create depth. Focus on the beauty and complexity of information networks. High-tech, conceptual art style, volumetric lighting, deep blues and purples, sharp focus, 8k, ultra-detailed, digital art."

Creative Brief

  • Purpose: To represent the abstract concept of big data, AI processing, or network security for a technology company's website, whitepaper, or presentation.
  • Target Audience: Tech professionals, investors in data science, academic researchers, corporate clients.
  • Key Message: Visualize the invisible power and intricate connections of advanced data systems.
  • Desired Emotional Response: Awe, intrigue, intelligence, sophistication, understanding of complexity.

Visual Direction Specs

  • Dominant Colors: Deep blues, vibrant purples, electric cyan, subtle gold or silver accents for highlights.
  • Lighting: Internal glow from pathways and particles, creating a sense of energy within the darkness. Volumetric light rays emphasizing depth.
  • Composition: Central focus on a dense cluster of interconnected pathways, expanding outwards into infinity. Use of depth of field to draw the eye.
  • Forms: Smooth, organic curves for data flow, intersecting with sharp, crystalline geometric shapes for data nodes or processing units.
  • Details: Subtle energy particles, faint glowing lines indicating data packets, a sense of constant motion.

4. Concept: Vintage Explorer's Desk

AI Image Prompt

"Overhead flat lay shot of a meticulously organized vintage explorer's desk. Antique maps, a brass compass, leather-bound journal, fountain pen, sepia-toned photographs, a magnifying glass, and dried botanical samples. Warm, moody lighting from a nearby window. Rich textures of wood, aged paper, and polished metal. Focus on nostalgia, adventure, and intellectual curiosity. Photorealistic, high detail, warm color palette, 8k."

Creative Brief

  • Purpose: For a luxury stationery brand, a historical documentary title sequence, a vintage-themed cafe, or a personal blog about travel and discovery.
  • Target Audience: Enthusiasts of history, vintage aesthetics, travel, writers, academics.
  • Key Message: Evoke the spirit of adventure, the romance of discovery, and the timeless appeal of knowledge.
  • Desired Emotional Response: Nostalgia, wonder, inspiration, intellectual curiosity, warmth.

Visual Direction Specs

  • Dominant Colors: Earthy browns, deep greens, muted golds, cream, sepia tones.
  • Lighting: Soft, directional natural light from a window, creating gentle shadows that add depth. Warm overall tone.
  • Composition: Flat lay (top-down) with items carefully arranged to create a sense of narrative and balance. Some items slightly overlapping.
  • Materials & Textures: Aged wood grain (dark oak or mahogany), textured paper, worn leather, polished brass, glass.
  • Details: Handwritten notes in the journal, intricate map details, dust motes in the air, slight imperfections on vintage items to enhance authenticity.

5. Concept: Whimsical Forest Spirit

AI Image Prompt

"Enchanting forest spirit, ethereal and glowing, composed of moss, delicate flowers, and swirling mist. Standing gracefully amidst ancient, moss-covered trees in a sun-dappled, magical forest. Soft, magical light, bokeh background, intricate details of flora and fauna integrated into its form. Fantasy art, dreamlike, vibrant greens and soft pastels, wide shot, 8k, highly detailed, whimsical illustration."

Creative Brief

  • Purpose: For children's book illustration, fantasy game character design, environmental awareness campaign, or a magical realism art print.
  • Target Audience: Children, fantasy literature readers, nature lovers, artists.
  • Key Message: Celebrate the magic and wonder of nature, and the unseen spirits that protect it.
  • Desired Emotional Response: Wonder, awe, peace, enchantment, connection to nature.

Visual Direction Specs

  • Dominant Colors: Lush greens, soft browns, pastel pinks, purples, and blues (for flowers and glow), golden sunlight.
  • Lighting: Magical, dappled sunlight filtering through leaves, creating pools of light. The spirit itself emits a soft, internal glow.
  • Composition: Full-body shot of the spirit, positioned slightly off-center for a natural feel. Forest background with depth and soft focus.
  • Spirit's Form: Delicate and organic, with visible textures of moss, bark, and petals. Eyes, if present, should be gentle and wise.
  • Details: Tiny glowing insects or fireflies around the spirit, dew drops on leaves, intricate patterns of bark on surrounding trees.

6. Concept: High-Energy Fitness Model

AI Image Prompt

"Dynamic action shot of a fit, diverse model performing an intense strength training exercise (e.g., deadlift, kettlebell swing) in a modern, well-equipped gym. Sweat glistening, muscles defined, expression of focused determination. Backlit by strong, directional artificial light, creating dramatic shadows. Energetic, motivational, sharp focus, shallow depth of field, 8k, photorealistic, commercial photography style."

Creative Brief

  • Purpose: For a fitness brand's advertising campaign, gym promotions, health magazine cover, or motivational social media content.
  • Target Audience: Fitness enthusiasts, gym-goers, individuals seeking motivation for a healthy lifestyle.
  • Key Message: Empowering strength, dedication, and the pursuit of personal bests.
  • Desired Emotional Response: Motivation, inspiration, determination, strength, admiration.

Visual Direction Specs

  • Dominant Colors: Muted gym tones (greys, blacks, deep blues) with pops of vibrant color from activewear or equipment.
  • Lighting: Dramatic, high-contrast studio-style lighting. Strong backlighting to highlight muscle definition and create an aura. Spotlights on the subject.
  • Composition: Mid-shot or close-up, capturing the peak of the action. Emphasize the model's form and effort. Dynamic angles.
  • Model: Fit, athletic build, diverse ethnicity, wearing modern, functional activewear. Intense, focused expression.
  • Details: Glistening sweat, chalk dust (if applicable), sharp focus on the model's face and engaged muscles, blurred background of gym equipment.

7. Concept: Futuristic Eco-City Agriculture

AI Image Prompt

"Panoramic view of a futuristic vertical farm integrated into a sustainable eco-city. Towering glass structures filled with glowing hydroponic crops, connected by sky bridges and monorails. Clean, minimalist architecture, abundant green spaces, clean energy sources (wind turbines, solar panels). Bright, optimistic daylight. Aerial perspective, crisp details, utopian aesthetic, 8k, photorealistic, architectural visualization."

Creative Brief

  • Purpose: For a sustainability report, urban planning concept, environmental technology company, or a vision for future living.
  • Target Audience: Urban planners, environmentalists, investors in green technology, future-focused communities.
  • Key Message: A harmonious future where technology and nature combine to create sustainable, thriving urban environments.
  • Desired Emotional Response: Hope, optimism, inspiration, progress, tranquility.

Visual Direction Specs

  • Dominant Colors: Fresh greens, clear blues (sky, water), pristine whites, silver metallics, subtle warm glow from crops.
  • Lighting: Bright, clear daylight. Soft shadows, emphasizing cleanliness and openness.
  • Composition: High aerial or drone shot, showcasing the vastness and integration of the city and farms. Clear lines and geometric patterns.
  • Architecture: Sleek, modern, curved glass and steel. Seamless integration of plant life within and around buildings.
  • Details: Visible layers of crops within vertical farms, subtle movement of wind turbines, clean transportation systems, clear water features.

8. Concept: Ancient Mythical Portal

AI Image Prompt

"Ancient, moss-covered stone portal glowing with arcane energy, nestled deep within a primeval forest. Swirling mist and faint light emanate from the portal's center, hinting at another realm. Towering, gnarled trees with roots snaking over rocks. Moody, atmospheric lighting, deep greens and blues, magical glow. Fantasy art, epic, wide shot, 8k, highly detailed, photorealistic, Lord of the Rings aesthetic."

Creative Brief

  • Purpose: For a fantasy novel cover, a role-playing game environment, a mythological art series, or a conceptual piece for a film.
  • Target Audience: Fantasy readers, gamers, lovers of mythology and ancient lore.
  • Key Message: Unveil the mystery and power of ancient magic, hinting at unexplored worlds and hidden dangers.
  • Desired Emotional Response: Awe, mystery, wonder, slight trepidation, epic scale.

Visual Direction Specs

  • Dominant Colors: Deep forest greens, earthy browns, mystical blues and purples for the portal's glow, dark greys for stone.
  • Lighting: Dim, atmospheric forest light, with a strong, pulsating glow from the portal as the primary light source. Volumetric fog.
  • Composition: Wide shot, centering the portal, with the ancient forest framing it. Emphasize the scale of the trees and rocks.
  • Portal Design: Megalithic, rough-hewn stone, covered in ancient runes and creeping moss. Energy within should be dynamic and swirling.
  • Details: Intricate moss and lichen on stones, gnarled tree branches, subtle light particles emanating from the portal, a sense of deep age.

9. Concept: Minimalist Product Showcase

AI Image Prompt

"Clean, minimalist studio shot of a sleek, modern smartphone on a perfectly smooth, gradient white-to-light-grey background. Subtle soft shadows, diffused lighting from above, highlighting

image_prompt___brief_creator.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}