pip install genesis-world
genesis_world-1.4.5-py3-none-any.whl 83.6MB
Genesis-embodied 指的是 Genesis Embodied AI 团队及其实体 AI 项目 Genesis,一个由全球顶尖研究机构联合开发的开源生成式物理引擎与仿真平台。
🤖 它是什么
Genesis 专为通用机器人、具身 AI 和物理 AI 研究设计,核心是把物理仿真、照片级渲染和生成式数据引擎集成到一个纯 Python 框架里。 2024年12月开源后24小时内 GitHub 星数破3万,被业界称为"仿真界的 DeepSeek"。
⚙️ 核心能力
- 统一物理引擎:集成了刚体、MPM、SPH、FEM、PBD、稳定流体等多种主流物理求解器,支持刚体、液体、气体、布料、可变形体、颗粒材料等模拟与耦合。
- 超高速并行模拟:单张 RTX 4090 上模拟 Franka 机械臂可达 4300万帧/秒,比实时快43万倍,速度是其他 GPU 加速模拟器的10到80倍。
- 照片级渲染:内置光线追踪渲染器 Nyx,支持 RTX 加速,专为机器人应用设计。
- 生成式数据引擎:能根据自然语言描述自动生成机器人策略、3D场景、角色动作等多模态数据,实现从提示词到仿真再到实体机器人的 Sim2Real 迁移。
🏛️ 团队背景
项目由卡内基梅隆大学主导,联合 MIT、斯坦福、清华、北大等全球20多所顶尖研究机构,历时约24个月开发。 核心贡献者包括周衔(Zhou Xian)和淦创教授,2024年12月两人共同创立 Genesis AI 公司推动商业化。
🔗 相关链接
- 开源代码:GitHub 仓库
- 项目主页:Genesis 官网
- 官方文档:Read the Docs
2026年6月已正式发布 Genesis World 1.0,采用 Apache 2.0 开源许可,完全免费且商业友好。
Genesis-embodied 指的是 Genesis Embodied AI 团队及其实体 AI 项目 Genesis,一个由全球顶尖研究机构联合开发的开源生成式物理引擎与仿真平台。
Genesis 生成式数据引擎理解自然语言,核心是将大语言模型的语义理解能力与物理仿真引擎深度打通,把人类的自然语言指令直接转化为符合物理规律的可执行仿真数据。
🧠 底层语义理解基础
依托Transformer架构的自注意力机制,动态捕捉文本中词与词的长距离语义关联。
通过自监督预训练(掩码语言模型、自回归预测等),从海量文本中学习通用语言规律,区分多义词的语境含义。
多层级抽象编码,从词级语义逐步上升到句级逻辑、篇章级指代消解,完成对复杂指令的深度语义建模。
🎯 面向物理场景的意图解析
引擎内置专门针对机器人、物理仿真场景微调的大语言模型生成代理,优先识别指令中的实体、动作、物理约束三类核心要素。
自动完成歧义消解:比如用户说"让机器人拿起杯子",系统会精准区分"杯子"的3D模型属性、"拿起"对应的机械臂运动轨迹、场景中的重力等物理边界条件。
提取用户的隐性需求:比如"手持棍子的孙悟空在桌面奔跑3秒后跳跃",系统会自动识别出角色身份、动作时序、空间约束等细节。
🔗 语义到物理仿真的映射转化
采用"Code as Policy"范式,不输出简单JSON指令,而是直接将自然语言转化为图灵完备的可执行Python仿真脚本,支持循环、条件分支等复杂逻辑,适配Genesis全栈物理求解器。
打通语义空间与物理参数空间:将"奔跑速度""跳跃高度"这类自然语言描述,自动映射为刚体运动学参数、碰撞检测阈值、材质物理属性等仿真可识别的数值。
结合多物理求解器的统一框架,确保生成的动作、场景完全符合真实世界的物理规律,不会出现穿模、运动逻辑矛盾等问题。
✅ 闭环校验与Sim2Real对齐
生成过程中引入蒙特卡洛树搜索(MCTS-lite)决策引擎,遍历多套实现方案,筛选出物理上最合理的执行路径,避免大模型"思维狭窄"导致的不合理结果。
最终输出的不仅是动画序列,还同步生成可直接迁移到实体机器人的控制策略,实现从自然语言到真实物理世界的无缝衔接。
需要我为你拆解一个具体的Genesis自然语言生成仿真场景的完整代码示例吗?可以帮你直观看到语义到物理的转化过程。
以下是生成的代码: nl_to_sim.py
python
# coding=utf-8
import genesis as gs
# 1. 初始化 Genesis 引擎,启用 GPU 后端以获得高性能并行模拟
gs.init(backend=gs.gpu)
# 2. 创建仿真场景,启用实时查看器以便观察生成过程
scene = gs.Scene(
show_viewer=True,
viewer_options=gs.options.ViewerOptions(
camera_pos=(3.0, -3.0, 2.5),
camera_lookat=(0.0, 0.0, 0.5),
fov=40,
)
)
# 3. 【语义映射:环境构建】
# 自然语言指令:"在一个有灰色地面的房间里"
# 转化为:添加一个平面实体作为地面
plane = scene.add_entity(
morph=gs.morphs.Plane(),
surface=gs.surfaces.Default(color=(0.8, 0.8, 0.8))
)
# 4. 【语义映射:实体实例化】
# 自然语言指令:"放置一个 Franka Panda 机械臂"
# 转化为:从内置库加载 Franka 机器人模型
robot = scene.add_entity(
gs.morphs.MJCF(file="franka_emika_panda/panda.xml"),
)
# 5. 【语义映射:物体与物理属性】
# 自然语言指令:"在机械臂前方放一个红色的立方体盒子"
# 转化为:添加一个 Box 形态的刚体,设置位置和颜色
box = scene.add_entity(
morph=gs.morphs.Box(
pos=(0.6, 0.0, 0.05), # 位于机械臂前方
size=(0.1, 0.1, 0.1),
),
surface=gs.surfaces.Default(color=(1.0, 0.0, 0.0)), # 红色
material=gs.materials.Rigid() # 刚体物理属性
)
# 6. 【语义映射:动作策略生成】
# 自然语言指令:"让机械臂抓取并拿起盒子"
# 转化为:生成具体的关节控制策略(此处简化为预定义轨迹演示)
# 在实际生成式引擎中,这里会由 LLM 生成复杂的 PD 控制代码或强化学习策略
scene.build()
# 7. 运行仿真循环
for i in range(1000):
# 简单的开环控制演示:移动机械臂末端执行器到盒子上方
if i < 200:
robot.control_dofs_position([0.0, -0.5, 0.0, -2.5, 0.0, 3.0, 0.5], [0, 1, 2, 3, 4, 5, 6])
elif i < 400:
# 下降抓取
robot.control_dofs_position([0.0, -0.5, 0.0, -2.5, 0.0, 3.0, 0.0], [0, 1, 2, 3, 4, 5, 6])
robot.control_dofs_force([0.5, 0.5], [7, 8]) # 闭合夹爪
else:
# 拿起
robot.control_dofs_position([0.0, -0.5, 0.5, -2.5, 0.0, 3.0, 0.0], [0, 1, 2, 3, 4, 5, 6])
scene.step()
这段代码展示了 Genesis 如何将自然语言指令转化为可执行的 Python 仿真逻辑:
环境语义解析:将"灰色地面"映射为 gs.morphs.Plane() 并配置表面颜色属性。
实体实例化:将"Franka 机械臂"和"红色立方体"映射为具体的 URDF/MJCF 模型加载和几何体创建,自动关联物理材质(Rigid)。
空间关系推理:根据"前方"这一相对位置描述,自动计算并设置物体的初始坐标 pos。
策略代码生成:将"抓取并拿起"的高层意图分解为具体的关节位置控制(control_dofs_position)和力控制(control_dofs_force)序列,体现了从自然语言到底层控制信号的闭环。