文章

研发类工业软件开源生态发展观察

2024-08-20e-works 王阳

3084阅
开源,以其开放性、共享性的特点成为信息技术发展的一种重要协作方式和生态构建形式,已成为推动信息技术产业创新发展的核心力量。
       从全球范围来看,开源已经成为软件技术和产业创新的重要模式,诸如Linux、Android、MySQL等软件都采取了开源策略,同时全球开源软件项目的数量持续呈稳定增长态势。据全球最大的代码托管平台GitHub数据显示,2023年GitHub托管仓库已达4.2亿,新增仓库7300万个,增长率达21%。

       支持开源的拥趸者,坚定认为开源模式相比于工业时代封闭专利的发展模式,更顺应数字时代技术迭代快、应用范围广的发展规律,通过去中心化的协作方式激发各类主体的创新创造活力,以开放协作实现智慧累积,对创新效率和创新质量带来巨大提升。

       近年来,工业软件开源生态的国际化程度逐渐深入,开源体系建设也从平稳起步迈向加速发展的新阶段。依托开源模式实现加速发展,成为新晋工业软件厂商们选择的重要模式,也是推动工业软件创新的一条重要路径。

       那么,研发类工业软件领域有哪些开源引擎?有哪些做得发展得不错的开源项目?面临着哪些机遇与挑战?中国市场在这一领域的布局与进展如何?本文将逐一剖析与介绍。

一、工业软件开源生态观察

万丈高楼平地起,从几何建模内核说起

       几何建模内核,是用于提供CAX软件中的建模功能的软件组件,也是任何一款CAX软件的基石。其定义了建模造型的表达和设计交互能力,定义了几何造型的语言,涵盖了数学、几何和拓扑对象的数据结构及相应算法;以及文件导入/导出功能,可实现IGES模型导入、STEP模型等标准文件格式的导入,并可统一转为自主文件格式。

       纵观CAX60余年的发展历程,诞生了数十个内核/平台。其中,二维领域最著名的非ITC(IntelliCAD Technology Consortium)莫属,IntelliCAD因为与AutoCAD全面兼容,不仅界面、命令集、文件格式和AutoCAD高度兼容,并且编程接口LISP和SDS(c++)也和AutoCAD兼容,这也使得ITC技术联盟拥有众多的付费成员。

       在二维领域的标准兼容上,则主要依赖ODA(Open Design Alliance),ODA开放设计联盟是一个由1200家成员公司组成的非盈利技术联盟,众所周知,二维CAD软件的两项行业标准——DWG数据标准及ARX二次开发标准均由Autodesk制定、更新与维护,而加入ODA联盟的成员公司可以通过ODA技术授权兼容DWG数据标准。

AutoCAD、ITC与ODA之间的关联

图1 AutoCAD、ITC与ODA之间的关联

       得益于ITC+ODA这对黄金组合,诞生了ZWCAD、Wrightsoft、progeSOFT、FRAMECAD、CADian、ActCAD、MicroSurvey等一批颇有影响力的软件。

       在三维领域,最具代表性的三个内核则是——ACIS(被达索收购)、Parasolid(被西门子工业软件收购)和OpenCasCade(开源几何建模内核)。此外,随着CAX技术的发展,越来越多公司探索自有内核(Own kernel)的发展路径,譬如PTC的Granite,CATIA的CGM以及SOLIDWORKS也在逐步转向CGM,CrownCAD的DGM内核,ZW3D的Overdrive内核等。
表1 全球知名CAD内核/平台

全球知名CAD内核/平台

(来源:e-works整理,选取部分有代表性内核/平台)

       其中,ACIS最初是美国Spatial Technology公司(后被达索系统并购)开发的产品,应用于CAD系统开发的几何平台。它提供从简单实体到复杂实体的造型功能,以及实体的布尔运算、曲面裁减、曲面过渡等多种编辑功能,还提供了实体的数据存储功能和SAT文件的输入、输出功能。

       ACIS的特点是采用面向对象的数据结构,用C++编程,使得线架造型、曲面造型、实体造型任意灵活组合使用。ACIS产品使用软件组件技术,用户可使用所需的部件,也可以用自己开发的部件来替代ACIS的部件。ACIS产品包括一系列的ACIS3DToolkit几何造型和多种可选择的软件包,一个软件包类似于一个或多个部件,提供一些高级专业函数,可以单独出售给需要特定功能的用户。使用ACIS内核的代表软件包括AutoCAD、ABAQUS、Fluent、Nastran、Cimatron、SpaceClaim、REVIT、ActCAD等。

       Parasolid则是由Shape Data公司开发,经过多番并购现在由西门子数字化工业软件拥有,可以被其他公司许可用于其3D计算机图形软件产品。Parasolid的功能包括模型创建和编辑实用程序,如布尔建模操作、特征建模支持、高级曲面设计、加厚和挖空、混合和切片以及图纸建模等。

       Parasolid还包括用于直接模型编辑的工具,包括逐渐变细、偏移、几何替换以及通过自动再生周围数据来移除特征细节。Parasolid还提供广泛的图形和渲染支持,包括隐藏线、线框和绘图、曲面细分和模型数据查询等。使用ParaSolid内核的代表软件包括NX、SolidEdge、SOLIDWORKS、ANSYS、Onshape、FEMAP、Adams、Adina、Shapr3D等。

CAX开源软件/项目荟萃,OCC独领群英

       数十年来,随着技术的演进与革新,CAX内核并没有呈现多点开花的格局,反而形成ACIS和Parasolid双寡头相对垄断的局面。尽管也有不少公司在探索自有内核(Own kernel)的发展路径,但较难形成规模化挑战。

       这也使得,开源成了除ACIS、Parasolid和Own kernel之外的另一选择。

       这就不得不提Open CASCADE(Open Computer Aided Software for Computer Aided Designand Engineering),它是全球十分重要的几何造型基础软件平台之一,也是工业领域唯一具有工程价值的开源几何建模引擎。

       Open CASCADE的历史最早可以追溯到上世纪80年代的Matra Datavision(马特拉资讯),当时Matra Datavision发布了Euclid CAD系统,随着版本的迭代逐渐成为CAD/CAM领域的市场领导者。1993年,Matra Datavision创建了名为CAS.CADE(计算机辅助设计和工程的计算机辅助软件/Open Computer Aided Software for Computer Aided Designand Engineering)的开发平台,并于1999年以Open CASCADE的形式开源发布了CAS.CADE开发平台;2000年,Matra Datavision宣布成立Open Cascade SAS子公司;此后,经过多次并购,Open Cascade平台更名为Open Cascade Technology(OCCT),以避免与公司本身(Open Cascade)名称混淆。

       在几何建模上,Open CASCADE是一个功能强大的三维建模工具,提供了点、线、面、体和复杂形体的显示和交互操作,经过深度开发后可实现纹理、光照、图元填充、渲染等图形操作和放大、缩小、旋转、漫游、模拟飞行、模拟穿越等动态操作;在数据交换上,Open CASCADE为CAD数据交换提供了先进的工具,支持STEP、IGES、STL和VRML等常见格式;在可视化上,Open CASCADE Technology平台提供了基于OpenGL的自定义可视化子系统,该子系统不仅允许有效地使用库的几何资源,而且还支持在真实CAD应用程序中实现交互式3D场景。

       在商业模式上,Open CASCADE通过开源方式让全球各种软件开发商使用其技术,并因为“开源”的属性被公众所知。如今,业界有众多基于Open CASCADE引擎开发的开源项目/软件,以及基于Open CASCADE构建的开源社区。
表2 全球知名CAX开源引擎及项目

全球知名CAX开源引擎及项目

(来源:e-works整理,选取部分有代表性开源内核及项目)

       除Open CASCADE外,CAD开源引擎还包括Coin3DCGAL。Coin3D主要是用于3D图形编程的开源跨平台库,通常与Open Inventor(用于三维图形开发的标准和工具包)结合使用;CGAL则是开源计算几何算法库,尽管也应用于CAD领域,如开源项目Open SCAD就使用CGAL用于构造实体几何(CSG)评估。但CGAL更多还是应用在地理信息系统GIS、计算机图形学CG(游戏、娱乐等)以及分子生物学、医学成像等领域。

       而在仿真分析领域,开源引擎则主要包括OpenFOAMCodeAsterSU2Calculix等。OpenFOAM是免费的开源CFD软件,2004年以来由OpenCFD Ltd开发,每六个月发布一次专业版本,包括客户赞助的开发和来自社区的贡献。经过多次并购和重组,OpenFOAM如今是ESI Group的全资子公司,2023年ESI Group又被Keysight并购。

       CodeAster是开源有限元仿真软件,适用于固体力学、热学和声学等物理现象,具体细分为静力学、动力学、流固耦合、传热学等,发源于法国电力集团(EDF),目前由一个德、法、奥地利多国专家团队运营。

       SU2是用C++和Python编写的开源软件工具集合,用于使用最先进的数值方法分析非结构化网格上的偏微分方程(PDE)和PDE约束优化问题,广泛适用于航空、汽车、船舶和可再生能源行业。其诞生于斯坦福大学航空航天系航空航天设计实验室(ADL),目前由SU2基金会运营。

       Calculix是一个由德国慕尼黑MTU航空发动机公司工程师开发的开源结构有限元软件,其基于GPL分发,处理器和求解器可单独使用,并提供外部CAD接口。

       另外,还有一系列运作较为成功的CAX开源项目,它们有一个共同的特点,就是建立于Open CASCADE开源几何建模引擎之上,或构建于多个免费开源软件库之上

       比如FreeCAD,就是一个基于OpenCASCADE的开源CAD/CAE工具。FreeCAD具有类似CATIA、SOLIDWORKS、Solid Edge的功能,因此也提供除CAX之外的产品数据管理功能。同时也适用于多平台,可在Windows和Linux/Unix和Mac OSX等系统运行;

       SALOME是一个多方合作的开源CAE集成平台,由法国电力集团EDF、法国原子能和替代能源委员会CEA和Open CASCADE三方合作共同发起;SALOME主要功能包含几何建模、网格生成以及后处理,其中几何建模基于Open CasCADE,网格划分主要基于NETGEN及Gmesh,后处理主要通过ParaView来实现;

       开源国产CAE软件集成开发平台FastCAE的几何建模模板也是基于Open CasCADE,由开源工业软件工作委员会(Open Atom openCAX)孵化,面向求解器开发者提供CAE软件界面与通用功能模块快速研发集成框架,用户可免费使用同时鼓励商业化;

       Open Geometry则是国内2023年刚成立的一个基于Open CASCADE的开源社区,由数字化工业软件联盟孵化,并由开元几何作为服务公司运营的开源项目,主要搭建“云几何内核开源软件开发平台”。

       其他的开源项目还包括,基于云端的CAM开源项目Open Builds CAM,适用于五轴激光加工和其他数控加工操作;以及由Onshape开源而来的Feature Script,主要用于创建和处理3D参数模型,Feature Script内置于Onshape中,其源代码是开源的,可在名为“std”的公共Onshape文档中免费查看。

二、开源工业软件机遇与挑战

机遇面前,开源加速创新成共识

       纵观全球开源生态的发展,相较前几年,呈现出愈加蓬勃发展的态势:

       首先,在技术创新方面,开源具备汇聚众智,促进多方协同的特点,能有效提升技术创新及重大科学问题突破速度;其次,在产业发展方面,通过吸收开源协同的协作模式,使得分工链条更长更广,可以让产业链更多的人才参与到场景化、定制化的应用需求中,实现共创;在合作方面,通过开源可以链接广泛的国际合作关系,构建更加紧密的全球协作分工体系。

       从大方向上来看,这种开放共享的新型协作模式是数字经济创新、开放、共享和可持续发展的关键驱动力,相比于工业时代以专利为牵引的封闭产业体系,具有分工效率更高、协作范围更广的特点。可以说,开源加速创新已是业界基本的共识

       当然,对工业软件领域来说,借助开源虽不意味着一定能弯道超车,却能在固化已久的市场掀起一些波澜,或在细分市场占据一席之地。

       以ITC技术联盟为例,尽管它是一个需要付费加入的联盟,但基于IntelliCAD发展出了ZWCAD、Wrightsoft、progeSOFT、FRAMECAD、ActCAD、MicroSurvey等一批颇有影响力的软件。譬如Wrightsoft已成为暖通空调设计领域的全球领导者,而ZWCAD则为90多个国家和地区的超过140万用户提供产品和服务。

       基于Open CASCADE更是诞生了一批有代表性的开源项目和产品,覆盖航空航天与国防、汽车、BIM和AEC、化学、消费品、牙科、电子工程、工业设备、机械工程、医疗、军事、造船、机器人、特种机械、体育用品等众多行业和领域。

部分基于Open CASCADE开源引擎孵化的项目/产品

图2 部分基于Open CASCADE开源引擎孵化的项目/产品(来源:OCC官网)

挑战并存,开源面临的潜在风险

       另一方面来看,基于开源代码虽然为工业软件的开发提供了巨大的便利,但也存在诸多挑战。

       除了代码漏洞、供应链攻击等常规开源风险,工业软件开源更大的挑战在于要遵守相应软件的开源规范。开源模式下,不同许可证对软件再发行有着不同的要求,而这对选择开源的软件开发商来说至关重要,稍有不慎就可能掉坑里,甚至需要付出高昂的学费。

       通常情况下,开源许可有三种类别:第一种是允许二次闭源发行,需要保留原始版权和许可声明,有代表性许可模式的包括MIT、Apache2.0、BDS2.0-clause等;

       第二种是在一定条件下允许二次闭源发行,常见的许可模式有LGLP2.1,其商业软件通过代码类库引用(软件代码与引用的源代码呈“松耦合性”)的方式下可以闭源发行;

       第三种是不允许二次闭源发行。常见许可模式如GPL——其2.0版本不允许闭源发行,3.0版本在此之上设置了更严格的开源要求。

       源自中国科学技术大学的九韶CAX内核,坚持进行自主研发而没有选择开源,主要就考虑到GPL许可模式的限制。

       目前,大多数选择开源的工业软件都基于Open CasCADE内核进行开发,而它们均需要以LGPL License模式发布。LGPL是GPL(GNU General Public License)的一个变种,允许在不将整个项目开放源代码的情况下使用LGPL代码。它主要用于软件库,允许与闭源软件链接而不强制开源,但修改的LGPL代码仍需公开。

       这就意味着,基于Open CasCADE开源代码发布自己商用软件的公司,需要公开和发布改写的那部分代码内容,否则可能会遭到侵权起诉。

       实际上,在工业软件领域,因为源代码造成的纠纷和争论不一而足。不同开源许可证对于二次发行有不同程度的开源要求,要求越严格,开发者越难保护商业版本发行的机密性。如何平衡好知识产权和侵权风险,是工业软件拥抱开源的重要挑战!

三、倍道而进的中国开源工业软件产业

政策加持,加速推动工业软件开源建设

       随着开源技术的不断发展,欧美国家在开源政策方面逐渐完善,这些政策在鼓励创新、促进技术共享和保护开源社区等方面发挥着积极的作用。

欧美国家开源政策汇总

图3 欧美国家开源政策汇总(来源:e-works整理)

       过去两年,我国开源支持政策持续落地,一定程度上推动着工业软件开源体系建设从平稳起步迈向加速繁荣的新阶段。

       国务院编制的“十四五”规划和2035年远景目标纲要提到,要支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务;工信部颁发的《十四五软件和信息技术服务业发展规划》中,则明确指出要培育重点开源项目、建设优秀开源社区、提升开源治理能力等。

       各地方政府更是密集出台了支持开源的相关政策举措:

       在安徽省人民政府办公厅印发《以数字化转型推动制造业高端化智能化绿色化发展实施方案(2023—2025年)》中,提出要支持工业软件开源生态建设

       青岛市人民政府办公厅印发《数字青岛2023年行动方案》则提出:鼓励行业领军企业建设开源平台,孵化一批基础性、前瞻性开源项目,加快构建开源软件生态

       无锡市人民政府印发《无锡国家传感网创新示范区(无锡市物联网产业集群)发展三年行动计划(2023—2025年)》提到要深化与国内开源基金会、代码托管平台和开源社区合作

       北京市人民政府办公厅印发《北京市机器人产业创新发展行动方案(2023-2025年)》提到要大力推动开源控制系统、开源芯片、开源仿真软件等研制和应用。

       南京市工业和信息化局印发《加快开源软件发展三年行动计划(2023-2025年)》强调,要支持特色化示范性软件学院发挥开源人才培养的示范带头作用,探索产学研一体化的开源人才培养模式,加快推进开源教育。

       2023年12月,江苏省人民政府办公厅印发《关于加快工业软件自主创新的若干政策措施》中,提到要支持开源技术创新。鼓励各地建设、招引自主开源软件创新平台,扶持基于自主基础软件的开源社区运营,举办开源技术交流活动,建立开源软件项目“白名单”制度,营造开源开放的技术产品创新和应用生态。

       2022年7月,在开放原子开源基金会指导下,我国还成立了开源工业软件工作委员会(Open Atom openCAX),致力于构建一个国际化的开源工业软件工具链,推动我国开源生态有序发展,加速工业软件关键核心技术的积累和产业商用的迭代,为工业软件开源使用者、开发者、研究者提供国际化交流平台。Open Atom openCAX通过凝聚国内工业软件开源力量,组建了10个SIG技术组,筹建国内首个开源工业软件社区,开展开源工业软件技术研究,积极开展工业软件开源文化布道。

试吃螃蟹,探索国产工业软件开源发展

       在探索工业软件开源发展的过程中,正是有这样一批勇于尝试的先行者,推动着我国开源工业软件的发展。

开源工业软件工作委员会牵头的FastCAE项目

       传统CAE软件开发方式,通常由CAE厂商/研发单位从头开始设计架构,并逐步开发相应的功能模块。这导致需要相当长的时间周期、高技术人才和高昂的成本。

       过去几十年,我国一些高校和科研院所在CAE求解器、CAE软件产品化等方面有过很多探索和积累,如何让他们的工作形成合力,发挥规模化价值?由开源工业软件工作委员会(Open Atom openCAX)牵头的FastCAE开源项目正在探索过程中。

       FastCAE项目的发起,是想打造一个CAE软件集成框架平台开源模式,通过整合CAE软件关键技术及参与主体,形成开放、共享、协作的研发与应用生态。这样一来,可以解决两个关键的问题:

       一是将CAE开发过程中的低价值、重复工作解放出来,以用来进行高价值的CAE软件共创;二是将底座共性技术坚持开源,分阶段探索开源营收的商业模式。

FastCAE提供开源免费、去除版权、技术服务三种服务模式

图4 FastCAE提供开源免费、去除版权、技术服务三种服务模式

       应该说,经过四年的积累,FastCAE实现了一定程度的业务、技术和人才的协同发展。包括组织开源学院培训、开源工业仿真软件集成大赛以及多次的主题演讲与宣传,已应用到船舶、汽车、航空航天、核能、机械、热能以及多场耦合等行业和领域,服务国产CAE软件100余例,覆盖高校、研究所、企业等40余家单位。

       当然,FastCAE在商业模式仍有很长的路要走。只有真正意义上打造成有竞争力和生命力的商业化产品,才能立于市场之林。

数字化工业软件联盟孵化OGG开源项目

       2022年,因为俄乌冲突造成的对俄制裁,其中就涉及法国公司创建的Open CasCADE开源几何建模引擎。随着OCC法管母社区停止与俄管子社区合作,而导致社区工作瘫痪、技术更新和代码维护停止。在这一背景下,华为接管了OCC俄管子社区,将绝大多数研发人员收编到华为俄罗斯研究所,也使得OCC俄管子社区的技术维护和代码更新工作得以恢复。

       此后,华为在遵守法管母社区的许可下,将OCC俄管子社区全部源代码迁移到华为云服务器上。

       这是Open Geometry Group(OGG)开源社区创建的背景。为区别于OCC原有俄管子社区名称,2023年,由数字化工业软件联盟牵头的Open Geometry Group(OGG)开源社区正式命名和落地。

       2024年4月,OGG 1.0开源几何建模引擎正式发布。两年来,华为技术团队对OGG进行了486项增强,并仍在持续更新和研发。未来,OGG还将针对性地对新一代云几何融合内核、开源测试用例库、CAD模型交互标准……等进行规划。

基于Open CASCADE开源引擎的OGG 2024.4 PreviewBeta版本进行公测

图5 基于Open CASCADE开源引擎的OGG 2024.4 PreviewBeta版本进行公测

       与FastCAE开源项目聚焦在CAE领域不同的是,OGG有着更宏大的愿景。从技术层面来看,OGG接收了Open CasCADE创始团队12名元老,同时组建了一支50余人的跨国几何算法团队,彰显了其投入开源的决心;但同样,OGG面临的挑战在于商业模式,只有以市场化的方式赢得市场,才能让开源这条路行稳致远。

后记

       探讨工业软件开源发展问题,首先需要厘清几个概念:

       一、开源软件是使用者在遵守许可限制的条件下,可自由获取源代码。遵守开源规则与规范至关重要,否则可能会陷入泥潭甚至付出高昂的学费

       二、开源是一种开发理念和方式,并不意味着免费。开源软件同样面临商业化的问题,没有足够具有竞争力的商业模式,可能会昙花一现,成为过眼云烟

       总的来说,我们应有拥抱开源的勇气,鼓励那些尝试、探索甚至试错开源的先行者们。基于开源模式,他们将积累多年的洞察、经验和Know-How贡献出来,本身就是一种开放协作、符合数字经济价值观的举措,也更有助于形成多边紧密的全球格局和实现可持续发展。

       但同时,对开源工业软件所面临的挑战与风险、以及所需要进行的长期投入、有竞争力的商业模式等要有清晰的认知和研判。在此基础上,借助开源降低企业开发工业软件的成本、实现全球化使用、全球化迭代、全球化纠错、全球化分享,未尝不是工业软件创新发展的差异化路径!
责任编辑:程玥
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
读者评论 (0)
请您登录/注册后再评论