首页 › LLM大语言模型 › Codex专栏 › Codex 实战案例 › Codex + Images 2 从 UI 设计到上线:可互动的3D生物结构科普App

Codex + Images 2 从 UI 设计到上线:可互动的3D生物结构科普App

​

✅

这篇就带你做一个具体项目:​

•

生成 3D 生物结构(比如 DNA 双螺旋、细胞器、蛋白结构)​

•

做成一个 可旋转、可缩放、可点击讲解 的互动 App,最后 部署上线,发给朋友直接玩​

​

你要准备什么​

最终效果展示​

​

飞书文档 - 图片

​

一个网页 App,打开后:​

•

中间是 3D 生物结构​

•

鼠标拖拽旋转,滚轮缩放​

•

点击结构的"热点点位",右侧弹出解释卡片​

•

顶部有结构切换(DNA / 细胞 / 蛋白质…)​

场景就像那种博物馆互动屏:能玩、能学、不无聊。​

Step A:把需求喂给 Codex​

你别上来就说"给我写个 App"。那样它会写,但大概率不合你口味。​

你要给一个"产品级"的需求单。下面这段直接复制,改几个名词就能用:​

​

代码块​

Plain Text

我要一个网页端互动科普 App,主题是"3D 生物结构探索"。技术栈:Vite + React + Three.js。​

​

功能:​

  1. 首页展示一个 3D 模型(glb),支持拖拽旋转、滚轮缩放。​

  2. 右侧有信息面板:标题、简介、3 个知识点。​

  3. 支持切换 3 个模型(DNA 双螺旋、线粒体、蛋白质),切换时有加载状态。​

  4. 模型上支持 3 个热点(hotspot),点击热点会在信息面板显示对应解释。​

  5. 代码要结构清晰:components、scenes、data、utils。​

  6. 给我完整项目文件结构、关键文件代码、以及本地启动命令。​

​

要求:​

- 可运行,不要伪代码。​

- 尽量用 @react-three/fiber + drei 简化 Three.js。​

- 加一个简单的性能优化(比如按需渲染或降低像素比)。​

​

Step B:用 GPT Images 2 出 UI 方向图​

UI 这事最耗人。你想的是"简洁高级",落地就是"像个作业"。​

把 UI 先用 GPT Images 2 定调,很省命。​

4.1 直接让它出一张「网页截图风格」​

提示词可以这样写(可复制):​

​

代码块​

Plain Text

生成一张现代科普互动网页 App 的 UI 设计稿(desktop)。​

布局:左侧大区域是 3D 画布,右侧是信息面板(标题、简介、知识点、热点说明)。​

​

你拿到图后别只看"好看"。你要做两件事:​

•

把颜色、字体、间距记下来(或者让 Codex 照着还原)​

•

把组件拆出来:Tabs、InfoPanel、HotspotTooltip、Loading​

4.2 让 Codex 把"图片"转成可落地的样式​

你可以把图丢给 Codex(如果你的环境支持图片输入),然后说:​

​

代码块​

Plain Text

请根据这张 UI 设计稿,用 React + CSS(或 Tailwind)实现同款布局和风格。​

要求:​

- 3D 区域占 70%,右侧面板 30%​

​

​

💡

UI 这块的关键不是"100% 还原"。关键是:有层级、有一致性、别土。做到这三点就够了。​

​

Step C:3D 场景搭建(用 r3f,别手搓 Three.js)​

如果你以前被 Three.js 折磨过,这里给你一条活路:​

•

@react-three/fiber 负责把 Three 场景变成 React 组件​

•

@react-three/drei 提供现成轨道控制、加载器、环境光​

让 Codex 按这个方向写。​

5.1 关键依赖​

​

代码块​

Bash

npm i three @react-three/fiber @react-three/drei​

​

5.2 你要的核心能力​

•

Canvas:3D 画布​

•

OrbitControls:拖拽旋转、缩放​

•

useGLTF:加载 glb​

•

Html:在 3D 上叠加热点 UI(可选)​

你可以让 Codex 按这个组件结构来写:​

•

ModelViewer.tsx:Canvas + 灯光 + 控制器​

•

BioModel.tsx:加载 GLB、挂热点​

•

Hotspots.tsx:热点位置和点击事件​

•

InfoPanel.tsx:右侧信息​

六、Step D:热点(Hotspot)怎么做才不痛苦​

热点有两种常见做法:​

•

3D 物体小球 + Raycaster:真 3D,点中更稳​

•

drei 的 Html:看着像悬浮标签,好做但有遮挡问题​

建议你上来就用"3D 小球 + 点击"。够稳。​

6.1 数据结构建议​

把热点写成数据,别写死在组件里:​

​

代码块​

JavaScript

// data/models.ts​

export const MODELS = {​

dna: {​

name: "DNA 双螺旋",​

file: "/models/dna.glb",​

intro: "展示双螺旋结构与碱基对。",​

points: [​

"A-T、C-G 配对",​

"双螺旋的沟(大沟/小沟)",​

​

这样你换内容就像换 PPT。​

七、Step E:3D 生物结构模型从哪来(别硬生成,先能用)​

你说"生成 3D 生物结构",现实里分两条路:​

7.1 路线 1:直接用现成模型(最快上线)​

•

Sketchfab(注意授权)​

•

NIH/公开数据项目(有的提供 3D 资源)​

•

Blender 自己简单建(DNA 双螺旋其实不难)​

导出成 .glb,丢进 public/models/。​

7.2 路线 2:AI/程序生成(酷,但更费时间)​

•

DNA:可以用脚本生成螺旋曲线 + 实例化小球圆柱​

•

蛋白:可以从 PDB 数据渲染(需要额外库)​

​

⚡

建议你先用路线 1 把产品跑通。跑通的那一刻,你会非常上头。​

​

八、Step F:性能别翻车(不然你朋友打开就卡)​

3D App 最容易死在"我电脑很流畅,别人手机巨卡"。​

给你几个很实用的控制点:​

•

限制像素比:dpr={[1, 1.5]}​

•

模型面数别太夸张(glb 体积能控制在 5–15MB 内就舒服)​

•

加载时显示占位(别白屏)​

•

需要时再渲染(静止时不每帧重绘,可选)​

你可以直接让 Codex 加这一条:​

​

代码块​

Plain Text

给 Canvas 加 dpr 限制,并在模型加载时显示 Loader。模型加载失败要有错误提示。​

​

九、Step G:一键部署上线(把"能跑"变成"能发链接")​

本地跑起来只是及格。发链接才叫作品。​

9.1 方案 1:Vercel(省心)​

•

推到 GitHub​

•

Vercel 导入项目​

•

构建命令默认:npm run build​

•

输出目录:Vite 默认 dist​

9.2 方案 2:Netlify​

同理,选择 Vite preset 就行。​

9.3 方案 3:GitHub Pages​

适合纯静态,但要处理 base 路径。让 Codex 帮你改 vite.config 更快。​

十、直接可用的 Codex"迭代指令"(你就这样催它)​

你做项目时,最爽的用法是把 Codex 当"带班工程师"。下面这些指令非常好使:​

10.1 想加功能​

​

代码块​

Plain Text

在模型上增加 hover 高亮:鼠标移到 hotspot 球体上时变亮,并在鼠标旁显示 label。​

​

10.2 想修 bug​

​

代码块​

Plain Text

我点击 hotspot 没反应。请你检查 raycaster 事件绑定、对象层级、pointer events,给出可运行修复方案。​

​

10.3 想换 UI 风格​

​

代码块​

Plain Text

把整体 UI 改成更"科研仪表盘"风格:更强的网格背景、细线分割、右侧信息面板像控制台。​

只改样式和布局,不要动 3D 逻辑。​

​

10.4 想更像科普产品​

​

代码块​

Plain Text

​

十一、避坑清单(真的别踩)​

•

模型太大:glb 50MB 那种,网页基本没法玩。先压到 15MB 内。​

•

灯光瞎配:太暗像没加载,太亮像塑料。用 HDRI 环境光会舒服很多(drei 的 Environment)。​

•

热点坐标不对:模型中心点、缩放比例、导出轴向很容易乱。坐标别靠猜,让 Codex 加一个"调试模式"把坐标打印出来。​

•

交互冲突:OrbitControls 和点击热点经常抢事件。要处理 pointer events,必要时点击热点时临时禁用旋转。​

•

没做加载态:白屏 3 秒,用户直接关掉。​

十二、你可以怎么扩展(把小玩具变成作品集)​

•

加"知识卡片引用来源"(像正经科普)​

•

加"截图分享"按钮(生成海报图,传播力直接起飞)​

•

加"结构对比模式"(左右两个模型同步旋转)​

•

加"手机端手势优化"(双指缩放、单指旋转)​

十三、结尾​

Codex 最震撼的点,不是写代码快。​

是它把"想法 → UI → 可交互 → 能上线"这条路,变得像搭积木。​

你只要盯住一件事:内容有没有意思。​

想做哪个 3D 科普主题?DNA、细胞、病毒、太阳系、化学分子?你给我一个方向,我可以把提示词和项目结构按你的主题定制到能直接开工。​

​

​

相关标签:#UI设计 #前端开发 #Codex #Three.js #提示词技巧 #GPT Images 2 #3D可视化 #科学科普App #Vite #部署上线​