几何引擎 & 约束求解器 & 3D仿真物理引擎 & 图形引擎
- 1 介绍
- 技术图谱
- 建模
- 主流CAD/CAM/CAE/AEC所用引擎
- 2 几何建模引擎
- 2.1 介绍
- 2.2 各家实现
- 3 图形引擎
- 4 几何约束求解器
- 4.1 介绍
- 4.2 各家实现
- D-Cubed DCM(西门子)
- CGM(达索)
- LGS(LEDAS)
- DCS(华云三维)
- C3D Solver(俄罗斯ASCON)
- 5 物理引擎
- 5.1 介绍
- 5.2 各家实现
- PhysX
- MuJoCo(Multi-Joint dynamics with Contact)
- Bullet(Bullet Physics SDK)
- Havok(Havok Game Dynamics SDK)
- ODE(Open Dynamics Engine)
- Newton(Newton Dynamics)
- Vortex(Vortex Studio)
- DART(Dynamic Animation and Robotics Toolkit)
- Brax
- Drake
- RaiSim
- SimBody(Multibody Physics API)
- Dojo physics engine
- 其他
- Qt 新版本中使用 PhysX
- 2022年,NVIDIA开源了最新的PhysX 5.1 SDK
- The Kautham Project
- 参考
1 介绍
技术图谱
四大技术图谱就像四座护法金刚,形成了深不可测的技术鸿沟。这对于任何一个工业软件企业,十年发展的沉淀,那还只是开始。这条路,太漫长了。
建模
主流CAD/CAM/CAE/AEC所用引擎
Software | Vendor | Domain | 3D-kernel |
---|---|---|---|
4MCAD IntelliCAD | 4M S.A., Greece | CAD, AEC | Open CASCADE Technology |
Adams | MSC Software, USA | CAE | Parasolid |
ADEM | ADEM, Russia-Israel-Germany | CAD, CAM, CAPP | ACIS |
ADINA Modeler | ADINA R&D Inc., USA | CAE | Parasolid & Open CASCADE Technology |
Alibre Design | 3D Systems, USA | MCAD | ACIS |
Allplan | Nemetschek AG, Germany | AEC/BIM | SMLib |
AMPSolid | AMPS Technologies, USA | CAE | ACIS |
ANSYS | ANSYS Inc., USA | CAE | ACIS & Parasolid |
APM Studio | НТЦ АПМ, Russia | MCAD | Own kernel (APM Engine) |
ArchiCAD | Graphisoft, Hungary | AEC/BIM | Own kernel |
ARES | Graebert, Germany | CAD | ACIS |
Ashlar-Vellum Cobalt, Xenon, Argon | Ashlar-Vellum, USA | MCAD | ACIS |
AutoCAD | Autodesk, USA | CAD, AEC, GIS | Own kernel (ASM) compatible with ACIS |
Autodesk Inventor | Autodesk, USA | MCAD | Own kernel (ASM) compatible with ACIS |
Autodesk Moldflow | Autodesk, USA | CAE | Parasolid |
Autodesk Revit Architecture | Autodesk, USA | AEC/BIM | Own kernel (ASM) compatible with ACIS |
bonzai3d | AutoDesSys, USA | CAD | own kernel + ACIS |
Bricscad | Bricsys NV, Belgium | AEC, MCAD | ACIS |
BtoCAD | YuanFang Software Co., Ltd., China | CAD | ACIS |
CADopia | CADopia Inc., USA | CAD | ACIS |
CATIA | Dassault Systemes, France | CAD/CAM/CAE, AEC | CGM |
Cimatron | Cimatron Limited, Israel | CAM | ACIS |
CollabCAD | National Informatics Centre, India | CAD/CAM | Open CASCADE Technology |
Creo (former Pro/Engineer) | Parametric Technology, USA | MCAD | GRANITE |
Creo Elements/Direct Modeling (former CoCreate) | Parametric Technology, USA | CAD | ACIS |
Edgecam | Planit Software, UK | CAM | Parasolid & GRANITE |
ESPRIT | DP Technology Corp., USA | CAM | Parasolid |
form-Z | AutoDesSys, USA | CAD | own kernel + ACIS |
FreeCAD | Open project | CAD | Open CASCADE Technology |
GibbsCAM | Cimatron, Israel | CAD/CAM | Parasolid & GRANITE |
GstarCAD | Suzhou Gstarsoft Co., Ltd, China | CAD | ACIS |
IRONCAD | IronCAD LLC, USA | MCAD | ACIS & Parasolid |
KeyCreator | Kubotek USA Inc., Japan-USA | CAD | ACIS |
KOMPAS-3D | ASCON, Russia | MCAD, AEC | Own kernel(C3D) |
Mastercam | CNC Software, USA | CAD/CAM | ACIS |
Masterwork | Tecnos G.A., Italy | CAM | Open CASCADE Technology |
MicroStation | Bentley Systems, USA | AEC | Parasolid (previous versions used ACIS) |
Moment of Inspiration | Triple Squid Software Design, USA | CAD | SOLIDS++ |
NX | Siemens PLM Software, Germany-USA | CAD/CAM/CAE | Parasolid |
Patran | MSC Software, USA | CAE | Parasolid |
Power NURBS | Ideate Inc., USA | CAD | SOLIDS++ |
PowerSHAPE | Delcam plc, UK | CAD/CAM | Parasolid |
progeCAD | progeCAD Srl Uninominale, Italy | CAD | ACIS |
Radan | Planit, UK | CAD/CAM | ACIS |
Rhinoceros | Robert McNeel and Associates, USA | CAD | SOLIDS++ (particular modules) |
Shark LT | Encore, USA | CAD | ACIS |
SmartCAM | SmartCAMcnc, USA | CAM | ACIS |
Solid Edge | Siemens PLM Software, Germany-USA | MCAD | Parasolid (previous versions used ACIS) |
SolidWorks | Dassault Systemes, France-USA | MCAD | Parasolid |
SpaceClaim | SpaceClaim Corp., USA | MCAD | ACIS |
STAR-CCM+ | CD-adapco, UK-USA | CAE | Parasolid |
StruCad | AceCad Software, UK | AEC/BIM | Own kernel |
T-FLEX | Top Systems, Russia | MCAD | Parasolid |
ThinkDesign | Versata, USA | MCAD | Own kernel |
TopSolid | Missler Software, France | CAD/CAM | Parasolid |
TurboCAD | IMSI/design, USA | AEC, MCAD | ACIS |
Vectorworks | Nemetschek, Germany | AEC | Parasolid (previous versions used SMLib) |
ViaCAD 2D/3D | Encore, USA | CAD | ACIS |
ZW3D (former VX CAD/CAM) | ZWCAD Software, China | MCAD | Own kernel (VX Overdrive) |
SINOVATION | 华天软件 | CAD/CAM | CRUX IV |
2 几何建模引擎
2.1 介绍
几何引擎主要是用来进行产品造型设计,是在计算机上用基本几何图元以及参数化的曲线曲面,进行布尔运算从而完成造型的过程。整个几何引擎的运算是非常复杂的,包括大量的自由曲面求交求并等计算。一款成熟的几何引擎不仅需要准确的计算,而且还要满足计算精度的要求,同时还需要有成熟的容错机制以及模型构造历史信息的管理。这就大大的提高了入门的门槛,这也就是为什么市面上很少有几何引擎的原因。
2.2 各家实现
3 图形引擎
几何引擎用来驱动造型数据的产生,图形引擎则用来对模型展示渲染,满足用户交互的需求。
图形引擎–介绍
4 几何约束求解器
几何约束求解引擎是公认的CAD参数化设计的关键核心技术,是CAD的关键基础组件,技术难度大,可靠性要求极高。
4.1 介绍
几何约束求解器广泛应用在草图轮廓表达、零件建模参数表达、装配约束以及碰撞检查等场景中,为快速确定设计意图表达、检查干涉、模拟运动提供了强有力的支持,可帮助最终用户提高生产效率。
在CAD、CAM、CAE、AEC等应用方向,约束求解引擎都是最基础的核心组件。
- CAD领域的2D草图绘制、偏移轮廓操作、装配约束、参数布线和3D零件形状修改、碰撞/间隙计算、运动模拟、高质量的工程图纸和技术插图等场景;
- CAM领域的模具装配约束、2D刀具路径生成、CAM碰撞和间隙计算等场景;
- CAE领域需要的参数化3D零件和装配体修改;
- AEC领域的参数化楼层平面图的2D草图、参数化组件和管道/电缆网络配置、AEC项目干涉分析、高质量AEC图纸(HLM)等场景,都需要约束求解器支持。
4.2 各家实现
D-Cubed DCM(西门子)
20世纪90年代至2006年,英国剑桥大学Owen教授创办D-Cubed公司开发约束求解器DCM,长期占据求解器70%市场。DCM市场并不大,截至2018年销售额不过3000万美元,但其在产业发展中属于“卡脖子”工程。为了在竞争中保持优势地位,西门子公司于2006年全资收购了D-Cubed,引发业内震动,许多著名CAD厂商如Autodesk公司为了不受制于人,纷纷宣布自行开发几何约束求解器,以确保技术安全。几何约束求解器的重要性由此可见一斑。
CGM(达索)
LGS(LEDAS)
DCS(华云三维)
C3D Solver(俄罗斯ASCON)
5 物理引擎
5.1 介绍
物理引擎是一个计算机程序用来模拟牛顿动力学模型,使用质量、速度、摩擦力和空气阻力等变量,为刚性或柔性物体赋予真实的物理属性的方式来模拟物体的运动、旋转和碰撞等交互过程,使得仿真的效果更准确、更真实。
5.2 各家实现
PhysX
PhysX是Nvidia开发的开源实时物理引擎 中间件 SDK ,作为Nvidia GameWorks软件套件的一部分。
最初,支持 PhysX 的视频游戏旨在通过PhysX PPU(Ageia设计的扩展卡)进行加速。然而,在 Ageia 被 Nvidia 收购后,专用 PhysX 卡已停产,取而代之的是在支持CUDA的GeForce GPU上运行API。在这两种情况下,硬件加速都允许从CPU卸载物理计算,从而使其能够执行其他任务。
如今,PhysX 和其他中间件物理引擎已在许多视频游戏中使用,因为它们使游戏开发人员不必编写自己的代码来实现经典力学(牛顿物理),例如软体动力学。
MuJoCo(Multi-Joint dynamics with Contact)
http://www.mujoco.org/
MuJoCo是一款免费开源物理引擎,旨在促进机器人、生物力学、图形和动画以及其他需要快速准确模拟的领域的研究和开发。
MuJoCo被DeepMind收购后进行了开源。
它提供了速度,准确性和建模能力的独特组合,但它不仅仅是一个更好的模拟器。相反,它是第一个从头开始设计的全功能模拟器,其目的是基于模型的优化,尤其是通过接触进行的优化。MuJoCo使扩大计算密集型技术(例如最佳控制,物理一致状态估计,系统识别和自动化机制设计)成为可能,并将其应用于具有丰富接触行为的复杂动态系统。它还具有更多传统应用程序,例如在物理机器人上部署之前测试和验证控制方案,交互式科学可视化,虚拟环境,动画和游戏。
Bullet(Bullet Physics SDK)
https://github.com/bulletphysics/bullet3
Bullet物理引擎是开源的,专业的集刚体、软体和碰撞检测于一身的动力学类库。Bullet的特性还包括快速和稳定的刚体动力约束和求解、动态车辆、人物控制和滑动器、铰链、普通的自由度和针对碎布木偶的圆锥和扭曲约束。这款物理引擎的历史也比较久了,但似乎国内知道的ODE的人更多一些,这款物理引擎被Nvidia的开发人员所关注(Nvidia前些时候说过,要用GPU来实现物理加速,可能会最先在这款物理引擎上实现。)
Havok(Havok Game Dynamics SDK)
https://www.havok.com/
Havok引擎是Havok公司开发的一款物理引擎,有不少游戏和软件都选择了他做物理引擎,比如HALO3、失落星球、HL2、 细胞分裂、指环王Online等等。如今Havok被Intel收购了,以后可能对Intel的CPU会有特别的优化。Havok对PS2、XBOX、GameCube、PC多种游戏平台都有支持。也是世界顶级游戏公司Valve(Half Life的公司),Pandemci,Remedy等的合作伙伴。这个物理引擎曾经支持过各种类型的游戏,包括racing game,first-persion shooter,MMOGs,adventure games,puzzle games等等。Hovak还曾经负责电影Matrix的部分效果处理。
特点:支持如下功能
- Collision Detection - including Continuous Physics™;
- MOPP™ Technology - for compact representation of large collision meshes;
- Dynamics and Constraint Solving;
- Vehicle Dynamics;
- Data Serialization and Art Tool Support;
- Visual Debugger for in-game diagnostic feedback.
ODE(Open Dynamics Engine)
https://www.ode.org/
ODE(Open Dynamics Engine,开源动力学引擎)是一个著名免费的具有工业品质的用于模拟关节连接的刚体动力学的库,由Russell Smith在一些贡献者的帮助下开发而成。经过验证的应用场景包括在虚拟显示环境中模拟地面车辆,腿形生物和移动物体。它具有快速、灵活、健壮的特点,并具有内置的碰撞检测功能。
Newton(Newton Dynamics)
http://newtondynamics.com/forum/newton.php
Newton引擎主要应用于3D游戏开发中,其快速方便的碰撞检测和关节构架等功能使其非常适合于机器人仿真环境的建立,避免了手工复杂的力学计算,并能提供逼真的仿真结果。这款物理引擎更多的专注于生活中的实例模拟,名声可能不是很响,但是功能上绝对不差。比较出名的作品有TV3D,Quest3D等。
Vortex(Vortex Studio)
https://www.cm-labs.com/
VORTEX是加拿大CM_LABS公司的旗舰产品,是一款工程级别的实时交互式动力学仿真软件,强调准确性和实时性并重。Vortex软件作为全世界最优秀的实时交互动力学仿真工具,具有优秀的数学模型和高效的计算方法,成功实现工程计算准确性和虚拟现实仿真实时性。VORTEX可以考虑任意复杂拓扑系统的多体动力学,自动进行快速稳定准确的干涉检查与碰撞检测,原生支持OSG视景引擎,也可以集成任意的图形引擎。
DART(Dynamic Animation and Robotics Toolkit)
https://dartsim.github.io/
DART(动态动画和机器人工具箱)是由乔治亚理工学院的图形实验室和仿人机器人实验室创建的一个协作、跨平台的开放源码库。该库为机器人技术和计算机动画中的运动学和动力学应用提供数据结构和算法。由于DART使用广义坐标来表示铰接刚体系统,并使用Featherstone的铰接体算法来计算运动动力学,因此它的精度和稳定性得到了显著的提高。DART在机器人学和计算机动画中有着广泛的应用,因为它具有多体动力学模拟器和各种用于控制和运动规划的运动学工具。
Brax
Brax,一个用JAX编写的用于刚体仿真的开源库,重点是加速器上的性能和并行性。
Drake
RaiSim
https://raisim.com/
RaiSim是RaiSim Tech Inc.开发的用于机器人技术和AI的跨平台多体物理引擎,其设计目的是为模拟机器人系统提供准确性和速度。但是,它是通用的刚体模拟器,可以非常有效地仿真任何刚体。它是开源的,且完全支持Linux,Mac Os和Windows系统。
SimBody(Multibody Physics API)
https://simtk.org/projects/simbody
Simbody是一种高性能的开放源代码工具包,用于对关节机制进行科学和工程质量的仿真,包括生物力学结构(例如人和动物的骨骼),机械系统(例如机器人,车辆和机器)以及任何其他可以描述的内容一组由关节相互连接,受力和运动影响且受约束约束的刚体。Simbody包括一个多体动力学库,用于建模O(n)时间中的广义/内部坐标下的运动。有时称为Featherstone样式的物理引擎。该工具集最初是由斯坦福大学Simbios中心的Michael Sherman开发的,由Peter Eastman和其他人做出了重要贡献,其完全在GitHub上开源,且完全支持Windows,Mac OSX或Linux系统。
Dojo physics engine
https://github.com/dojo-sim/Dojo.jl
https://arxiv.org/pdf/2203.00806.pdf
- 像是实验室demo,不再积极开发。
- Dojo物理引擎从头开始设计,以解决这三个关键缺陷,为运动规划、控制、强化学习、系统识别和高质量数据集生成提供更好、更容易的优化。
其他
Qt 新版本中使用 PhysX
Qt 6.4发布介绍中:其中模块,Qt Quick 3D 物理 (TP)
新的 Qt Quick 3D Physics 模块提供了一个高级物理模拟 API,它支持模拟交互式刚体,以及用于检测重叠的静态网格和非碰撞体。每个模拟物体都可以有自己的物理属性,如质量、密度和摩擦力。
将物理模拟集成到 Qt Quick 3D 中,轻松构建自然移动和交互的 3D 场景。之前需要手工制作这样的场景和动画,可能非常费力,但是使用 Qt Quick API 可以很容易地将物理内容添加到任何 3D 场景中。
该模块基于成熟、经过充分测试和高性能的 PhysX 引擎。
2022年,NVIDIA开源了最新的PhysX 5.1 SDK
2018年,NVIDIA首次将自家的物理引擎PhysX开源,并在之后进行了一段时间的更迭维护。
但在2019年末,GitHub上NVIDIA的PhysX项目页的版本却停留在了4.1,并未同步更新PhysX 5.0。
2022年,NVIDIA终于开源了最新的PhysX 5.1 SDK,总计包含了66.2万行代码、文档和相关资产。
The Kautham Project
https://github.com/iocroblab/kautham
参考
1、wiki–PhysX
2、Dojo: A Differentiable Physics Engine for Robotics
3、机器人开发–常用仿真软件工具
4、Awesome-Robot-Learning
5、Qt 6.4 正式发布,添加 http 服务器、物理、光线等大量新模块
6、时隔2年:NVIDIA终于开源PhysX 5.1物理引擎
7、A Tool for Knowledge-oriented Physics-based Motion Planning and Simulation
8、图形引擎–介绍
9、CAD几何引擎和图形引擎的关系
10、“多物理场仿真技术” 公众号 原创文章集合
11、工业软件研发有多“难”
12、工业软件(CAD、CAE和EDA)为什么这么难研发?(转载)
13、2021主流CAD/CAM/CAE/AEC所用几何引擎具体是什么