Skip to content

renky1025/mathlab

Repository files navigation

MathLab - 交互式数学可视化实验室

React TypeScript Vite Tailwind CSS

把抽象数学改造成可操作的视觉机器

这不是静态展板,而是一组可调参数、可复现实验和实时反馈组成的数学实验室。每个页面都把一类结构性规律拉到眼前,让你直接拖动它、打断它、观察它。

在线体验 · 报告问题


实验目录

序列与数论

实验 路径 描述 核心概念
帕斯卡三角 /pascal 从递推加法里看模运算、组合数和分形纹理怎样同时长出来 组合数、模运算、分形、谢尔宾斯基三角
斐波那契螺旋 /fibonacci 把增长序列、黄金比例和几何铺排放进同一张图里 黄金比例 φ、斐波那契数列、对数螺旋
傅里叶级数 /fourier 用一串旋转圆把复杂波形拆回最原始的谐波语言 谐波分析、正弦/余弦叠加、信号分解
乘法圆 /times-table 滑动 k 值,观察圆 → 心形 → 花瓣 → 混沌的数论之美 模运算、参数方程、数论可视化
乌拉姆螺旋 /ulam-spiral 自然数螺旋排布,素数居然"排成了线" 素数分布、数论模式、对角线聚集

混沌与动力系统

实验 路径 描述 核心概念
混沌游戏 /chaos-game 随机跳点并不混乱,反而会稳定雕出经典分形 迭代函数系统、分形、随机过程
洛伦兹吸引子 /lorenz 微小初值偏差如何在动力系统里被放大成完全不同的轨迹 蝴蝶效应、混沌理论、奇异吸引子、微分方程
双摆 /double-pendulum 同一套方程,在时间维度里演出极端敏感的混沌运动 混沌运动、哈密顿力学、初值敏感性
曼德勃罗集 /mandelbrot zₙ₊₁ = zₙ² + c,简单公式生成了无限复杂的边界 复数迭代、分形、自相似、边界无限细节
朱利亚集 /julia-set 与 Mandelbrot 同源,固定 c 改初始 z₀ 生成新世界 复数动力学、填充集、与 Mandelbrot 的关系

分形与生长

实验 路径 描述 核心概念
L-System 分形树 /lsystem-tree 字符串重写控制分叉角度,实时生长动画 L-系统、字符串重写、涌现形态
科赫雪花 /koch-snowflake 线段不断替换,周长无限而面积有限 无限递归、分形维数、周长与面积的悖论

元胞自动机

实验 路径 描述 核心概念
生命游戏 /game-of-life 四条局部规则,足够生成滑翔机、振荡器和长程秩序 元胞自动机、涌现行为、零玩家游戏、图灵完备
兰顿蚂蚁 /langton-ant 最小状态机从混乱涂鸦走向稳定高速公路 图灵完备、涌现行为、二维图灵机

数学曲线

实验 路径 描述 核心概念
数学曲线加载器 /curve-loaders 把玫瑰线、利萨如曲线改造成可调的加载动画 参数方程、极坐标、玫瑰曲线、利萨如图形

17 种曲线: Original Thinking · Thinking Five · Thinking Nine · Rose Orbit · Rose Curve (2-5瓣) · Lissajous Drift · Lemniscate Bloom · Hypotrochoid Loop · Butterfly Phase · Cardioid Glow · Cardioid Heart · Heart Wave · Spiral Search · Fourier Flow


截图占位

Home

Pascal Fibonacci Fourier Times Table Ulam Spiral

Chaos Game Lorenz Double Pendulum Mandelbrot Julia Set

L-System Tree Koch Snowflake

Game of Life Langton's Ant

Curve Loaders


技术栈

  • React 19 - 现代 React 并发特性
  • TypeScript - 类型安全开发
  • Vite 7 - 极速构建工具
  • Tailwind CSS v4 - 原子化 CSS 框架
  • Lucide React - 精美图标库
  • Canvas API - 高性能图形渲染
  • React Router v7 - 声明式路由

本地开发

# 安装依赖
pnpm install

# 启动开发服务器
pnpm run dev

# 构建生产版本
pnpm run build

# 预览生产构建
pnpm run preview

# 运行测试
pnpm run test

# 代码检查
pnpm run lint

部署

项目已针对静态站点部署优化。执行 pnpm run build 后,可将 dist 文件夹部署到任意静态托管服务(Vercel、Netlify、GitHub Pages 等)。

SEO 配置

部署前请更新以下文件中的域名:

  • index.html - 规范 URL、Open Graph、Twitter Cards
  • public/sitemap.xml - 站点地图
  • public/robots.txt - 爬虫规则

项目结构

src/
├── pages/                    # 实验页面(16个)
│   ├── Home.tsx              # 首页目录
│   ├── Pascal.tsx            # 帕斯卡三角
│   ├── Fibonacci.tsx         # 斐波那契螺旋
│   ├── ChaosGame.tsx         # 混沌游戏
│   ├── LorenzAttractor.tsx   # 洛伦兹吸引子
│   ├── DoublePendulum.tsx    # 双摆
│   ├── FourierSeries.tsx     # 傅里叶级数
│   ├── GameOfLife.tsx        # 生命游戏
│   ├── LangtonAnt.tsx        # 兰顿蚂蚁
│   ├── MathCurveLoaders.tsx  # 数学曲线加载器
│   ├── TimesTable.tsx        # 乘法圆
│   ├── UlamSpiral.tsx        # 乌拉姆螺旋
│   ├── LSystemTree.tsx       # L-系统分形树
│   ├── KochSnowflake.tsx     # 科赫雪花
│   ├── Mandelbrot.tsx        # 曼德勃罗集
│   └── JuliaSet.tsx          # 朱利亚集
├── features/                 # 功能模块
│   ├── showcase-shell/       # 统一页面外壳
│   ├── curve-loaders/        # 曲线加载器核心
│   └── app-nav/              # 应用导航
├── hooks/                    # 自定义 Hooks
│   └── useSEO.ts             # SEO 管理
└── workers/                  # Web Workers

导航分组

项目导航按数学主题分组:

  • 总览 - 首页、曲线加载器
  • 序列 - 帕斯卡、斐波那契、傅里叶、乘法圆、乌拉姆螺旋
  • 混沌 - 混沌游戏、洛伦兹、双摆、曼德勃罗、朱利亚
  • 分形 - L-System 树、科赫雪花
  • 自动机 - 生命游戏、兰顿蚂蚁

贡献

这是一个专注于数学可视化和交互式学习的教育项目。欢迎提交 Issue 和 PR!


许可证

MIT © MathLab

About

MathLab transforms abstract mathematics into interactive visual experiments. Explore 16 simulations spanning chaos theory, fractals, and number theory—adjust parameters in real-time to watch patterns like the Mandelbrot set, Lorenz attractor, and Fibonacci spiral emerge from simple rules.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors