LBM流动模拟入门:D2Q9原理、Python实现与微流控应用
简介本资源是一套基于格子Boltzmann方法LBM的流体流动数值模拟开源实现面向计算流体力学初学者、高校科研人员及C科学计算实践者用于学习LBM核心原理与工程化建模流程。压缩包为tgz格式大小1.79MB包含OpenLatticeBoltzmann项目0.7r1版本完整源码主体为C头文件与实现文件辅以配置脚本和示例案例覆盖2D/3D典型流动场景如圆管流动、绕流、水槽波浪等支持快速编译运行与算法定制扩展。已有804人学习下载资源结构模块清晰算法层、网格层、IO接口分离明确便于理解LBM离散演化机制、边界处理策略及并行优化思路附带多组可复现的物理场景参数配置是开展教学演示、算法验证与二次开发的高实用性基础代码平台。1. 为什么用LBM做流动模拟不是替代Navier-Stokes而是绕开它最硬的三道坎你手头有个微流控芯片结构网格细到10微米量级雷诺数不到0.1想看液滴在分叉通道里的分裂过程——这时候扔一个传统CFD求解器进去大概率卡在网格生成阶段边界层要加密、曲面要贴合、非结构网格质量得人工调半天。更糟的是哪怕网格过了稳态迭代可能跑2000步还不收敛瞬态算一秒钟物理时间仿真机风扇转得像直升机起飞。而基于LBMLattice Boltzmann Method的流动模拟恰恰是为这类场景“长出来的”它不直接解N-S方程而是用一群虚拟粒子在规则格点上碰撞、迁移宏观速度场和压力场自动从统计行为中浮现。这不是玄学是数学等价——Chapman-Enskog展开已严格证明LBM在低马赫数下渐近收敛到不可压N-S方程。它天然适合并行、边界处理极简、无需求解大型线性方程组。适合谁做MEMS器件仿真、多孔介质渗流、生物微环境建模、甚至颗粒-流体耦合的工程师不适合谁高超声速激波、强可压缩燃烧、需要精确湍流频谱的航空发动机内流——LBM不是万能钥匙但对微尺度、低速、复杂边界的流动它是少有的“开箱即用可解释可复现”的方案。本文就带你从零跑通一个二维顶盖驱动方腔lid-driven cavity的LBM模拟代码不到200行单核3秒出结果所有参数含义、收敛判据、可视化路径全部实锤落地。2. LBM核心原理与D2Q9模型选型为什么不是D3Q15或D2Q52.1 从连续Boltzmann方程到离散格子跳过推导抓住三个关键约束LBM不是凭空造的数值技巧它必须满足三个物理守恒硬约束否则结果就是垃圾质量守恒所有离散速度方向上的分布函数之和等于局部密度ρ动量守恒分布函数加权求和权重为离散速度c_i必须等于ρu各向同性格点上所有速度方向的二阶矩c_iα c_iβ之和必须正比于Kronecker delta δ_αβ否则会引入虚假各向异性应力。这三个约束直接锁死了可用的格子模型。D2Q5二维五速度虽然简单但二阶矩不满足各向同性导致泊肃叶流动模拟中出现非物理解D2Q9二维九速度是唯一在二维下同时满足三约束的最小模型——它包含静止态c₀0和8个方向东西南北四个对角线速度大小统一设为c1时间步长Δt1格子间距Δx1。这正是我们选它的根本原因不是因为它“流行”而是因为它是二维空间里唯一能自洽闭合宏观方程的最小完备集。别被D3Q15/D3Q19唬住——三维模型参数更多、内存翻倍、稳定性更差而你的微流控问题大概率是准二维的。2.2 D2Q9的权重系数与平衡态分布函数抄作业前先看懂这组数字D2Q9的9个离散速度向量c_i和对应权重w_i是固定值不能改改了就破环守恒ic_i (c_x, c_y)w_i0(0, 0)4/91(1, 0)1/92(0, 1)1/93(-1, 0)1/94(0, -1)1/95(1, 1)1/366(-1, 1)1/367(-1, -1)1/368(1, -1)1/36提示权重总和必须为14/9 4×1/9 4×1/36 1这是质量守恒的基石。别手滑写成1/18。平衡态分布函数f_i^eq是LBM的灵魂它决定了系统趋向哪个宏观状态。对于不可压LBM标准形式为f_i^eq w_i ρ [1 3(c_i·u)/c² 4.5((c_i·u)/c²)² − 1.5(u·u)/c²]其中c²1因c_i模长为1所以简化为f_i^eq w_i ρ [1 3(c_i·u) 4.5(c_i·u)² − 1.5(u·u)]注意这里u是宏观速度单位格子/步不是物理速度物理速度u_phy u × Δx/Δt而我们设ΔxΔt1所以数值上uu_phy但概念上绝不能混淆。这个公式里没有粘度ν——粘度藏在松弛时间τ里下一节揭晓。2.3 粘度与松弛时间τ的映射为什么τ0.6比τ1.8更容易发散LBM的“粘度”不通过μ或ν显式输入而是由单一参数τ控制。理论推导Chapman-Enskog给出ν c_s² (τ − 0.5)其中c_s² 1/3 是格子声速平方D2Q9特有。所以ν (1/3)(τ − 0.5)这意味着τ必须 0.5否则ν为负数值爆炸τ越接近0.5ν越小流动越“稀薄”越容易不稳定τ1时ν1/3≈0.333是常见稳定起点τ0.6时ν1/30≈0.033适合高雷诺数但需更密网格τ1.8时ν13/30≈0.433流动高度阻尼收敛快但物理失真。实际调试时我一般先设τ1.0跑100步看速度场是否发散再根据雷诺数Re U L / ν反推τ若目标Re100特征速度U0.1特征长度L100格子数则νU L/Re0.1代入ν(1/3)(τ−0.5)得τ0.53×0.10.8。这就是“τ定粘度粘度定雷诺数”的闭环逻辑。3. 用Python实现D2Q9-LBM从初始化到稳态输出的完整流程3.1 初始化定义网格、物理参数与分布函数数组我们模拟经典的二维顶盖驱动方腔100×100格子上壁以速度U0.1向右运动其余壁无滑移。代码从零开始不依赖任何LBM专用库import numpy as np import matplotlib.pyplot as plt # 物理参数全部无量纲化 Nx, Ny 100, 100 # 格子数 U_lid 0.1 # 顶盖速度格子/步 tau 0.6 # 松弛时间决定粘度 # D2Q9参数速度向量与权重 c np.array([[0, 0], [1, 0], [0, 1], [-1, 0], [0, -1], [1, 1], [-1, 1], [-1, -1], [1, -1]]) w np.array([4/9, 1/9, 1/9, 1/9, 1/9, 1/36, 1/36, 1/36, 1/36]) # 初始化宏观场 rho np.ones((Ny, Nx)) # 密度场初始均匀 u np.zeros((Ny, Nx, 2)) # 速度场初始为零 # 初始化分布函数 f[i, y, x]i0..8 f np.zeros((9, Ny, Nx)) for i in range(9): f[i, :, :] w[i] * rho # 平衡态初值逻辑说明f是三维数组第一维是9个速度方向后两维是空间坐标。u是三维最后一维存u_x和u_y。这里rho全1是合理初值因为不可压流动密度变化极小1%LBM中常设ρ≡1简化。f按平衡态初始化避免启动瞬态震荡。3.2 迭代主循环碰撞→迁移→边界处理→宏观量更新LBM每一步就四件事顺序不能错def lbm_step(f, rho, u, tau, c, w, Nx, Ny, U_lid): # 1. 碰撞f ← f 1/τ (f_eq - f) f_eq compute_feq(rho, u, c, w) # 计算平衡态见下 f f (1.0/tau) * (f_eq - f) # 2. 迁移沿各自c_i方向平移f f_new np.zeros_like(f) for i in range(9): cx, cy c[i] # 周期性迁移用np.roll实现格点平移 f_new[i] np.roll(np.roll(f[i], cx, axis1), cy, axis0) # 3. 边界处理Bounce-back反弹边界条件 # 底、左、右边速度反向分布函数交换 f_new[3, :, 0] f[1, :, 0] # 左边界x0c_x1 → c_x-1 f_new[1, :, -1] f[3, :, -1] # 右边界xNx-1c_x-1 → c_x1 f_new[2, 0, :] f[4, 0, :] # 底边界y0c_y-1 → c_y1 # 顶盖边界移动壁Zou-He边界更精确见3.3节 # 4. 更新宏观量从f_new计算新rho和u rho np.sum(f_new, axis0) # 质量守恒 u np.zeros((Ny, Nx, 2)) for i in range(9): u[:, :, 0] c[i, 0] * f_new[i] u[:, :, 1] c[i, 1] * f_new[i] u / rho[..., np.newaxis] # 动量守恒 return f_new, rho, u def compute_feq(rho, u, c, w): 计算D2Q9平衡态分布函数 feq np.zeros((9, *rho.shape)) ux u[:, :, 0] uy u[:, :, 1] u2 ux**2 uy**2 for i in range(9): cu ux * c[i, 0] uy * c[i, 1] feq[i] w[i] * rho * (1 3*cu 4.5*cu**2 - 1.5*u2) return feq参数说明np.roll是迁移核心axis1是x方向列axis0是y方向行。c[i,0]和c[i,1]取±1或0roll自动处理越界如x-1变成xNx-1即周期性。注意u除以rho时用了np.newaxis保持维度对齐。这段代码已可运行但顶盖边界还没处理——用简单的bounce-back会引入误差下面专节解决。3.3 Zou-He移动壁边界为什么顶盖不能用反弹法顶盖以速度U_lid向右运动若强行用bounce-back把c₁→c₃会得到u_x0的无滑移壁完全错误。Zou-He方法是LBM中处理指定速度边界的金标准原理是在边界格点令某几个分布函数满足宏观速度约束其余由bounce-back确定。对顶盖yNy-1行我们要求u_x U_lidu_y 0ρ自由由质量守恒隐含D2Q9中顶盖行只有5个分布函数未被bounce-back确定f₀,f₁,f₂,f₅,f₈因为c₃,c₄,c₆,c₇指向域内其值由内部格点迁移而来。Zou-He给出显式公式f₃ f₁ − 2/3 ρ U_lidf₄ f₂ − 1/6 ρ U_lid 1/12 ρ (U_lid²)f₆ f₈ − 1/6 ρ U_lid − 1/12 ρ (U_lid²)f₇ f₅ − 1/6 ρ U_lid − 1/12 ρ (U_lid²)f₀,f₁,f₂,f₅,f₈保持不变由迁移来在代码中插入# 在lbm_step函数中迁移后、边界处理前添加顶盖Zou-He y_top Ny - 1 rho_top rho[y_top, :] ux_top U_lid * np.ones(Nx) uy_top np.zeros(Nx) # Zou-He for top wall (moving lid) f_new[3, y_top, :] f_new[1, y_top, :] - (2/3) * rho_top * ux_top f_new[4, y_top, :] f_new[2, y_top, :] - (1/6) * rho_top * ux_top (1/12) * rho_top * (ux_top**2) f_new[6, y_top, :] f_new[8, y_top, :] - (1/6) * rho_top * ux_top - (1/12) * rho_top * (ux_top**2) f_new[7, y_top, :] f_new[5, y_top, :] - (1/6) * rho_top * ux_top - (1/12) * rho_top * (ux_top**2)注意Zou-He公式中的ρ是边界行的密度必须用当前步计算出的rho[y_top, :]不能用上步的。这是新手最常翻车的点——用错ρ会导致速度严重偏离。4. 边界处理与收敛判据避坑指南——那些让LBM结果一夜回到解放前的细节4.1 现象速度场在角落疯狂震荡最大速度超出设定值10倍原因顶盖边界用了bounce-back而非Zou-He或Zou-He中误用了上步的ρ。bounce-back强制u0但顶盖需uU_lid矛盾在角点x0,yNy-1和xNx-1,yNy-1爆发产生非物理解。解决严格使用Zou-He并确保rho_top取自当前步迁移后的密度即rho np.sum(f_new, axis0)之后。4.2 现象迭代1000步后中心涡位置与文献结果偏差20%以上原因网格分辨率不足。LBM对网格敏感尤其在边界层。100×100网格对Re100的方腔足够但对Re1000必须≥256×256。文献基准Ghia et al., 1982用129×129网格才收敛到5位有效数字。解决先用粗网格64×64快速验证流程再逐步加密。记录不同Nx下的中心涡x坐标当变化0.5%时认为网格收敛。4.3 现象tau0.51时程序秒崩tau0.55时速度场缓慢漂移不收敛原因τ太接近0.5数值误差被指数放大。LBM的线性稳定性分析von Neumann表明τ0.50.15/Re时易失稳。对Re100安全下限是τ0.5015但工程上建议τ≥0.53。解决τ不要“试探下限”而应由目标Re反推。例如Re1000U0.1,L100→ν0.01→τ0.53×0.010.53。宁可设τ0.55保稳定再通过延长迭代步数换取精度。4.4 现象并行加速后结果与串行不一致且每次运行结果都不同原因迁移步骤np.roll在多线程下非原子操作或共享内存读写竞争。LBM迁移本质是Stencil计算必须保证所有f[i]的更新基于同一时刻的旧值。解决禁用多线程os.environ[OMP_NUM_THREADS] 1或改用双缓冲用f_old和f_new两个数组迁移时只读f_old只写f_new最后交换指针。不要在循环内原地修改f。4.5 现象可视化速度矢量图出现密集锯齿尤其在壁面附近原因宏观速度u由u Σ c_i f_i / ρ计算但靠近壁面时部分f_i来自bounce-back其值受边界条件强约束导致u的有限差分噪声放大。解决对u场做一次高斯模糊scipy.ndimage.gaussian_filter(u, sigma1.0)或改用“壁面单元平均法”在y0和yNy-1行u取相邻两行平均值。这不是作弊是LBM固有离散误差的合理平滑。5. 结果验证与进阶技巧用Ghia基准和流线图确认你的LBM没白跑5.1 与Ghia经典数据对比一行代码验证正确性Ghia et al. (1982) 的顶盖驱动方腔数据是LBM的“Hello World”级验证标尺。他们给出了Re100, 400, 1000时中心垂直线x0.5上的v速度分布。我们提取自己的结果并与之对比# 运行完稳态后比如迭代5000步 # 提取x50列Nx100中心列的v速度u[:,50,1] v_center u[:, 50, 1] # shape (Ny,) # 归一化物理坐标y_phy y_grid / (Nx-1)v_phy v_grid * U_lid y_phy np.linspace(0, 1, Ny) v_phy v_center * U_lid # 加载Ghia Re100数据可从公开源获取或用插值 # 这里假设ghia_y, ghia_v是已加载的数组 plt.plot(v_phy, y_phy, b-, labelLBM (Re100)) plt.plot(ghia_v, ghia_y, ro, markersize3, labelGhia et al.) plt.xlabel(v velocity); plt.ylabel(y); plt.legend() plt.title(Vertical velocity profile at cavity center) plt.show()提示Ghia数据y坐标从0底到1顶v速度在顶盖处应为0在中心涡下方为负向下流。若你的曲线整体上移或振幅偏小大概率是τ取值偏大粘度过高若在y0.9附近出现尖峰是顶盖边界处理有误。5.2 绘制流线图比矢量图更能揭示涡结构速度矢量图易受噪声干扰流线图streamline能平滑显示全局拓扑。用matplotlib.pyplot.streamplotx np.linspace(0, 1, Nx) y np.linspace(0, 1, Ny) X, Y np.meshgrid(x, y) Ux u[:, :, 0].T * U_lid # 转置匹配meshgrid Uy u[:, :, 1].T * U_lid plt.figure(figsize(8, 6)) strm plt.streamplot(X, Y, Ux, Uy, density2, linewidth1, colork, arrowsize1.2) plt.title(fLid-driven cavity flow (Re {int(U_lid * Nx / ((1/3)*(tau-0.5))):d})) plt.xlabel(x); plt.ylabel(y) plt.show()关键参数density2提高流线密度arrowsize1.2让箭头更醒目。你会清晰看到主涡、次涡bottom-left corner及其位置——Re100时次涡很弱Re1000时次涡明显。这是判断模拟是否进入物理合理区的最直观证据。5.3 加速技巧如何把10000步迭代从120秒压到18秒纯Python慢在循环和数组拷贝。三个实测有效的优化向量化迁移不用9次np.roll改用索引数组一次性赋值。预计算ix_new[i]和iy_new[i]然后f_new[i][iy_new[i], ix_new[i]] f[i].flatten()。提速约35%。JIT编译用numba.jit(nopythonTrue)装饰lbm_step和compute_feq首次调用稍慢后续快3倍。注意np.roll不支持nopython需手动实现边界填充。内存布局优化将f从(9,Ny,Nx)改为(Ny,Nx,9)使内层循环访问连续内存。配合numba.jit效果翻倍。我最终的生产级代码NxNy256, τ0.53在i7-11800H上纯Python 210秒 → 向量化numba 38秒 → 内存重排numba 18秒。没有魔法只有对内存和编译器的理解。写到这里你应该已经能独立跑通一个可验证的LBM模拟了。我带过的某高校实验室学生第一次实现就复现了Re100的Ghia曲线误差0.8%他们后来用这套框架做了微混合器优化把混合效率提升了22%。LBM不是黑匣子它的每个参数都有物理锚点每行代码都在执行明确的物理操作。别被“格子玻尔兹曼”名字吓住——它比你想象的更透明、更可控。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

用Stitch SDK + Google ADK打造AI设计师Agent:stitchAdkTools()完整实战教程

用Stitch SDK + Google ADK打造AI设计师Agent:stitchAdkTools()完整实战教程

【免费下载链接】stitch-sdk Generate UI screens from text prompts and extract their HTML and screenshots programmatically. 项目地址: https://gitcode.com/gh_mirrors/st/stitch-sdk 点击查看 免费下载 想用一个 AI Agent 自动创建项目、生成 UI 界面并提取…

2026/10/11 20:29:16 阅读更多 →
Flutter断言语义化:用shouldly风格提升鸿蒙单元测试可读性

Flutter断言语义化:用shouldly风格提升鸿蒙单元测试可读性

1. 为什么要在 Flutter 中用 shouldly:断言语义化的价值1.1 原生 expect 断言之痛我在做 Flutter 单元测试时,最常写的断言就是expect(actual, equals(expected))。写多了以后,问题会集中在测试跑失败那一刻暴露出来:Expected: 42…

2026/10/11 20:28:15 阅读更多 →
SOLIDWORKS Simulation本地交互接触设置详解:从接合到允许分离

SOLIDWORKS Simulation本地交互接触设置详解:从接合到允许分离

说实话,我第一次用SOLIDWORKS Simulation做装配体分析时,最头疼的界面就是“连接”下的接触条件。“本地交互”这几个字看起来平平无奇,点进去之后“目标面”“源面”“接合”“允许分离”“界面处理”“接触刚度稳定化因子”一长串参数&…

2026/10/11 20:28:15 阅读更多 →

最新新闻

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建:多商户入驻与智能派单方案详解同城家政行业早已从单一门店自营模式,转向多商户平台化联营发展。平台整合全城多家家政公司、个体服务商、持证服务师傅,统一承接用户订单,通过智能调度完成订单分发与履约。相…

2026/10/11 23:39:46 阅读更多 →
PDF加密权限解除实战:用qpdf免费命令行一键解锁

PDF加密权限解除实战:用qpdf免费命令行一键解锁

上周同事甩过来一个PDF,说打印店打不了,让我帮忙看看。我一看,文件本身没坏,是加了权限限制——允许查看,但打印和复制都被锁了。这种问题我一年能遇到几十次:文档在手机上看一点毛病没有,真要用…

2026/10/11 23:39:46 阅读更多 →
大数据缓存实战:Redis与Alluxio定位配置与踩坑

大数据缓存实战:Redis与Alluxio定位配置与踩坑

干大数据这行的人,迟早会被一个词拦住:慢。任务跑得慢、查询出得慢、报表刷得慢,追根问底,大多不是因为计算引擎不给力,而是存储访问拖了后腿。我在几个大数据平台的项目里折腾过缓存方案,常用的两样是Redi…

2026/10/11 23:39:46 阅读更多 →
基于蝴蝶优化算法的IEEE30节点无功优化Matlab实现与参数调优

基于蝴蝶优化算法的IEEE30节点无功优化Matlab实现与参数调优

1. 从"网损"到算法:先搞懂无功优化到底在优化什么说到电力系统优化调度,"有功优化"大家都很熟——机组出多少钱、发多少有功,直接影响运行成本。但大部分人第一次接触"无功优化"时都会有一个疑问:无…

2026/10/11 23:39:46 阅读更多 →
四月修复版H5农场养殖鸡蛋理财鸡源码部署与支付对接避坑指南

四月修复版H5农场养殖鸡蛋理财鸡源码部署与支付对接避坑指南

简介:最新修复版H5农场牧场养殖理财鸡游戏运营源码,定位为可直接运营的网站游戏项目,适合有建站基础、希望搭建休闲理财类H5游戏的个人或团队二次开发。资源包共2271个文件,约88.4MB,主体由HTML页面、JavaScript逻辑、…

2026/10/11 23:39:46 阅读更多 →
改进版Q-learning实战:Double Q、n步回报与经验回放

改进版Q-learning实战:Double Q、n步回报与经验回放

简介:基于Q-learning的改进版强化学习算法项目,聚焦路径规划场景,面向MATLAB用户及强化学习入门者。项目针对经典Q-learning收敛慢的问题,融合学习率衰减、动态ε-greedy探索、经验回放、目标网络与双线性更新等改进策略&#xff…

2026/10/11 23:38:45 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →