Skip to content
VibeFather
Sign up free

3 cases built from this template

Same prompt, different [VARIABLES]. Click one to preview it above.

About this template

This template is a full-screen 3D explainer of the Solar System that runs in the browser with no server. The scene is the first thing a visitor sees: the Sun, eight planets with surfaces drawn entirely in code, thin orbit lines and a quiet starfield, with a slim instrument bar along the bottom and one warm solar accent on deep-space black.

Its signature moment is a scale switch. In readable scale the planets are large enough to study. Flip to true scale and distances and sizes animate to their real proportions until every planet shrinks below one pixel, while a live readout shows how wide Earth is on screen. Visitors can also click any planet to fly to it and read its key numbers, drag a time slider from paused to more than two years per second, or start a nine-stop scroll tour from the Sun to Neptune with a scripted camera move at each stop. The tour ends by revealing the true scale, followed by a table for pacing out the whole system on a real street with a beach ball and some seeds.

It suits science teachers, museums, planetariums, science publishers and developers who want an ambitious three.js showcase. The numbers, captions and surface recipes all live in one content file, so you can point it at another star system, such as a set of exoplanets around a small red star, and keep the same look. Change the variables for the brand, system, bodies and audience, and your coding agent restates the real figures. Touch controls, a bottom sheet on phones, a capped pixel ratio and a reduced-motion path that swaps flights for cuts are part of the spec, and no image files are needed.

The template prompt

The live demo was built from exactly this text — nothing added. The other cases only change the values of the [VARIABLES].

# Solar System 3D Explainer

Build this website exactly as described below. Replace the [VARIABLES] with your own values; keep everything else.

## Brief
A one-page interactive 3D scale model of [SYSTEM], published by [BRAND], an invented small science publisher. A fixed full-viewport WebGL canvas is the hero from the first frame, with thin instrument-style UI layered on top. It has two modes: Explore (drag to orbit, click a body to fly to it and read its numbers, a scale switch, a time slider) and Tour (a nine-stop scroll journey from [CENTER_BODY] outward with scripted camera moves, ending in a true-scale reveal and a table for pacing the model out on a real street). The signature moment is the scale switch: when distances and sizes animate to their true proportions, the planets all but vanish, and a live readout says how many pixels wide [HOME_BODY] now is.

- Audience: [AUDIENCE]. Default audience: teachers projecting it in class, and curious adults on a laptop or phone.
- Goal: Make one idea unforgettable: space is overwhelmingly empty and every poster misdraws it. Visitors should flip the switch within seconds, then take the tour.
- Tone: Calm, exact and a little wry, like a good science teacher. Short sentences, real numbers in US units first, no exclamation marks, no cosmic hype words such as vast, awe-inspiring or journey through the cosmos.

## Stack
- Framework: Vite 5 + vanilla TypeScript + three.js
- Styling: Tailwind CSS 3.4
- Libraries: three 0.169 (renderer, OrbitControls from three/addons) (MIT), gsap 3.12 with ScrollTrigger (GSAP Standard License (free, including commercial use)), lucide (icons) (ISC), @fontsource/instrument-serif (OFL-1.1), @fontsource/ibm-plex-sans (OFL-1.1), @fontsource/ibm-plex-mono (OFL-1.1)
- Build: `npm run build` → static files in `dist/`. No backend, no server code, no external APIs.
- Setup:
  - No React or other UI framework: the scene is one imperative canvas and the UI is a small DOM overlay. The stack is fixed unless the user asks to change it.
  - vite.config.ts: base './', build.sourcemap false, build.chunkSizeWarningLimit 1200. The npm build script is: tsc --noEmit && vite build.
  - tailwind.config: extend colors with void, panel, hairline, ink, muted, solar from the Design section, and fontFamily with display (Instrument Serif), sans (IBM Plex Sans), mono (IBM Plex Mono). Custom CSS and the prefers-reduced-motion rules live in src/styles.css.
  - File layout: src/content.ts (all copy and all body data), src/main.ts (boot and mode switching), src/scene/system.ts (bodies, orbits, scale), src/scene/bake.ts (surface baking), src/scene/shaders.ts, src/scene/camera.ts (flights and tour path), src/ui/instruments.ts, src/ui/panel.ts, src/ui/labels.ts, src/ui/tour.ts.
  - Each body in src/content.ts has: id, name, kind, kicker, note, facts (array of label and value strings), diameterKm, distanceKm, orbitDays, rotationHours (negative means backward), tiltDeg, startAngleDeg, tourAngleDeg, surface (recipe name plus palette hexes), atmosphere (color and strength, or null), rings (or null), stop (azimuth, elevation, distance in radii, caption, chips, side). Scene code reads only this data, so a different system needs no scene changes.
  - If [SYSTEM], [CENTER_BODY] or [BODIES] differ from the defaults: use the real published figures for those bodies, restated in your own words, in the same fields. The tour gets one stop for [CENTER_BODY] plus one per body, numbered accordingly. Choose surface recipes and palettes from the same recipe set. Set belt and rings to null where they do not exist. Recompute the readable-scale table with the formulas given in the 3D scene section, and the street table with the method given in the Walk it yourself section. Rewrite any fact that does not apply (for example, Moons: none known; Day: likely always the same face to the star).
  - WebGL setup: THREE.WebGLRenderer with antialias true, logarithmicDepthBuffer true, powerPreference high-performance, ACESFilmicToneMapping, exposure 1.05, clear color #05070D. Pixel ratio min(devicePixelRatio, 2) on desktop and min(devicePixelRatio, 1.5) when pointer is coarse. Every custom ShaderMaterial must include the three.js logdepthbuf chunks in vertex and fragment, or depth sorting breaks.
  - Before creating the renderer, test canvas.getContext('webgl2'). If it returns null, do not create the renderer; show the fallback described in the 3D scene section, so the console stays clean.

## Variables
- [BRAND] — Publisher or project name (default: "Fernhill Almanac"). Invented science publisher, school project or museum microsite.
- [SYSTEM] — The system being explained (default: "the Solar System"). Any star with orbiting worlds.
- [CENTER_BODY] — The body at the center (default: "the Sun")
- [BODIES] — Orbiting bodies, inner to outer (default: "Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune"). Between 5 and 8 bodies keeps the tour a good length.
- [HOME_BODY] — The body used for the live pixel readout (default: "Earth"). The one readers will care about most.
- [AUDIENCE] — Who it is for (default: "middle school classrooms and curious adults")
- [CREDIT] — keep a small "Template by VibeFather" link to https://vibefather.ai/t/solar-system-3d-explainer in the footer (default: yes; delete this line to remove it)

The copy under Pages & Sections is written for the default values. If your values differ, rewrite every headline, paragraph, label and image for them — same length, tone and structure. Layout, colors, type and motion stay as described.
Keep all copy, image paths and links in one content file (for example `src/content.ts`), keyed by section, so the content can be swapped later without touching components.

Pro template. The design, sections, motion and assets parts of this prompt are for Pro members. The live demo and DESIGN.md stay free.

DESIGN.md

The design system on its own — colors, type, spacing and motion. Apply this look to a project you already have.

---
name: "Solar System 3D Explainer"
colors:
  void: "#05070D"
  panel: "rgba(11,15,26,0.78)"
  hairline: "rgba(200,210,230,0.16)"
  ink: "#E8ECF4"
  muted: "#8E99AD"
  solar: "#FFB454"
typography:
  display_hero_headline_body_names_section_headings: { family: "Instrument Serif", weights: [400] }
  text_paragraphs_captions_buttons: { family: "IBM Plex Sans", weights: [400, 500] }
  data_readouts_and_instrument_labels_uppercase_11px_with_0_08em_tracking_for_labels_tabular_numbers_for_values: { family: "IBM Plex Mono", weights: [400, 500] }
spacing: "4px base. Page gutter 32px on desktop and 16px on mobile. Panels use 20 to 24px padding. The UI stays thin and sits at the edges so the scene owns the center of the screen."
radius: "8px on panels and cards, 6px on buttons, full round on the scale switch and body dots. No shadows on UI: hairline borders only."
---

# Solar System 3D Explainer — Design System

Apply this design system to an existing project. It describes the look and feel only; for the full site, use prompt.md.

## Colors
- **Void** `#05070D` — Page and canvas background, a blue-black
- **Panel** `rgba(11,15,26,0.78)` — Instrument bar, side panel and caption cards, always with backdrop-filter blur(14px)
- **Hairline** `rgba(200,210,230,0.16)` — All 1px borders, rules and slider tracks
- **Ink** `#E8ECF4` — Headings and primary text
- **Muted** `#8E99AD` — Labels, secondary text, resting orbit lines
- **Solar** `#FFB454` — The single accent: primary button, active states, slider thumb, selected orbit, active tour tick. Nothing else in the UI gets a color.

## Typography
- **Display (hero headline, body names, section headings)** — Instrument Serif (OFL), weights 400. Self-host the font files.
- **Text (paragraphs, captions, buttons)** — IBM Plex Sans (OFL), weights 400/500. Self-host the font files.
- **Data readouts and instrument labels, uppercase 11px with 0.08em tracking for labels, tabular numbers for values** — IBM Plex Mono (OFL), weights 400/500. Self-host the font files.

## Spacing & shape
- Spacing: 4px base. Page gutter 32px on desktop and 16px on mobile. Panels use 20 to 24px padding. The UI stays thin and sits at the edges so the scene owns the center of the screen.
- Radius: 8px on panels and cards, 6px on buttons, full round on the scale switch and body dots. No shadows on UI: hairline borders only.

## Motion
- Opening: over 2.4s (power2.out) the camera pulls back from distance 40 to 82 around the Sun while the UI fades up in the last 0.8s.
- Scale switch: a single parameter s runs 0 to 1 over 2.4s (power3.inOut). Every distance and radius is interpolated in log space, as exp(lerp(ln readable, ln true, s)), so the shrink looks even instead of snapping at the end.
- Focus flight: 1.6s (power3.inOut). The target position interpolates linearly and the camera distance in log space, so the arrival is smooth even at true scale.
- Panels: side panel slides x 24px to 0 with opacity over 0.32s (power2.out). The mobile sheet slides up over 0.36s. Tour captions crossfade with y 16px to 0 over 0.35s.
- Scene shift: the focused body is never centered under a panel. A view-offset fraction tweens over 0.9s (see the 3D scene section).
- Controls: slider thumb grows 1.15x on hover, switch knob slides over 0.2s, buttons transition border and color over 0.15s.
- prefers-reduced-motion: time starts paused, the sun surface stops animating and planets stop spinning, camera flights become instant cuts, the scale switch jumps with a 0.2s fade to Void and back, the tour snaps to the nearest stop with the same fade, and the opening pull-back is skipped.

## Imagery
No bitmap photographs or texture maps. Every surface is generated at load by shaders and every other visual is drawn in WebGL, SVG or CSS. Surfaces are illustrative and the footer says so.

## Tone
Calm, exact and a little wry, like a good science teacher. Short sentences, real numbers in US units first, no exclamation marks, no cosmic hype words such as vast, awe-inspiring or journey through the cosmos.

---
— Prompt by VibeFather · https://vibefather.ai/t/solar-system-3d-explainer · CC BY-NC 4.0 (non-commercial; commercial use needs a VibeFather Pro license) · Request removal: https://vibefather.ai/takedown

Make it yours

  • A science museum kiosk: set BRAND to your institution, keep SYSTEM as the Solar System, and set AUDIENCE to gallery visitors so the tour and scale switch read at a glance.
  • An exoplanet explainer: set SYSTEM to a red dwarf and BODIES to its known planets, then update CENTER_BODY and HOME_BODY and let your agent restate the real figures.
  • A classroom teaching aid: set AUDIENCE to your year group, keep the nine-stop tour for lessons, and use the street table to pace the model out in the school hall.
  • A science publisher feature: set BRAND to your masthead, choose HOME_BODY for the live pixel readout, and rewrite the captions and chips for your readership.

Solar System 3D Explainer: questions and answers

How does the true-scale switch in the Solar System 3D Explainer work?

The Solar System 3D Explainer has a scale switch that animates distances and sizes from a readable scale, where planets are large enough to study, to their real proportions. In true scale every planet shrinks below one pixel, and a live readout shows how many pixels wide Earth is on screen. The tour ends by revealing true scale, followed by a table for pacing out the system on a real street.

Can I use the Solar System 3D Explainer to show a different star system or exoplanets?

Yes. The Solar System 3D Explainer keeps all numbers, captions and surface recipes in one content file, so you can point it at another star system, such as a set of exoplanets around a small red star, and keep the same look. Set the variables for the brand, system, bodies and audience, and your coding agent restates the real published figures in the same fields.

What do the variables BRAND, SYSTEM, BODIES, AUDIENCE, HOME_BODY and CENTER_BODY change?

In the Solar System 3D Explainer, BRAND sets the publisher name, SYSTEM names the star system being explained, CENTER_BODY is the body at the center, BODIES lists the orbiting bodies inner to outer, HOME_BODY is the body used for the live pixel readout, and AUDIENCE describes who the site is for. Change these and your coding agent rewrites every headline, paragraph and label to match.

How do I adapt the Solar System 3D Explainer for a museum or planetarium?

The Solar System 3D Explainer suits museums and planetariums as a kiosk or projected explainer. Set BRAND to your institution, keep SYSTEM as the Solar System or swap in your own, and set AUDIENCE to your visitors. The nine-stop scroll tour from the Sun to Neptune with scripted camera moves works well on a large screen, and the scale switch gives a short memorable moment for a gallery floor.

What do I need to change first in the Solar System 3D Explainer, and what should I watch out for?

Start with the variables: set BRAND, SYSTEM, BODIES, AUDIENCE, HOME_BODY and CENTER_BODY, then check that the facts, readable-scale table and street table have been restated for your system. The Solar System 3D Explainer needs WebGL; if the browser has no WebGL2 support, the template shows a fallback instead of the scene, so test on the devices your audience uses and confirm the bottom sheet and touch controls on phones.

How do I build a solar system 3D explainer with AI?

Copy the full prompt (Pro) from this page or run npx vibefather add solar-system-3d-explainer, replace [BRAND], [BODIES], [SYSTEM] and [AUDIENCE] with your own content, and paste it into Claude Code, Codex, Cursor or another AI coding agent. The live demos were built from exactly that text.

Which AI model built the Solar System 3D Explainer demo?

The The Solar System case was built by Claude Opus 5.5 in Claude Code; the A red dwarf's seven planets case was built by Claude Sonnet 5.5 in Claude Code; the The Solar System case was built by Gemini 4 Carbon in Cursor. Each build used the published prompt with nothing added, so you can compare the models side by side.

What tech stack and pages does the Solar System 3D Explainer template use?

Solar System 3D Explainer is a single-page site built with Tailwind CSS, GSAP and Three.js, with scroll animation, 3d / webgl and micro-interactions. The prompt fixes the stack so every AI tool builds the same kind of project, and the result runs as a static site you can host anywhere.

Is the Solar System 3D Explainer template free to use?

Solar System 3D Explainer is a Pro template: the brief, stack and variables are public, and the full prompt, the source code of the live demo and a commercial license come with VibeFather Pro. Its DESIGN.md is free for personal projects.

Does the Solar System 3D Explainer template work on mobile?

Yes. Every Solar System 3D Explainer build was tested on a phone-sized screen as well as desktop before it went live, checking layout, text size and touch targets. Open the live demo on your phone, or switch the preview on this page to mobile view, to check it yourself.