CN110990364B - 一种基于glfs的三维模型版本控制系统及方法 - Google Patents

一种基于glfs的三维模型版本控制系统及方法 Download PDF

Info

Publication number
CN110990364B
CN110990364B CN201911214010.4A CN201911214010A CN110990364B CN 110990364 B CN110990364 B CN 110990364B CN 201911214010 A CN201911214010 A CN 201911214010A CN 110990364 B CN110990364 B CN 110990364B
Authority
CN
China
Prior art keywords
model
version
plane
node
dimensional model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911214010.4A
Other languages
English (en)
Other versions
CN110990364A (zh
Inventor
杜宇坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simulation Center
Original Assignee
Beijing Simulation Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Simulation Center filed Critical Beijing Simulation Center
Priority to CN201911214010.4A priority Critical patent/CN110990364B/zh
Publication of CN110990364A publication Critical patent/CN110990364A/zh
Application granted granted Critical
Publication of CN110990364B publication Critical patent/CN110990364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种基于GLFS的三维模型版本控制系统和方法,该系统包括:模型查看器、模型解析器、差异分析器、模型快照记录器;模型查看器,用于为查看模型信息提供入口;模型解析器,用于解析模型文件;差异分析器,用于利用模型解析器的结果进行两组模型快照的差异比较及输出;模型快照记录器,用于对三维模型版本记录及存储。本申请提供的系统可以弥补现有的产品数据管理系统和三维模型设计软件对三维模型版本控制的不足和问题。

Description

一种基于GLFS的三维模型版本控制系统及方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于GLFS的三维模型版本控制系统及方法。
背景技术
GLFS是基于内容寻址技术的一套针对于大型二进制文件版本控制解决方案,本发明应用这种技术对三维模型文件进行版本控制,差异比较等。
基于PDM的产品数据管理系统、相关三维模型设计软件等。PDM是一种基于SQL的面向设计结果的产品数据管理系统,其主要对结构型数据、二进制数据、三维模型等进行存储和版本控制,其提供了签入和签出、权限控制等功能;三维模型设计软件有多种类型,如Solidwork、CATIA、UG、Pro/E等,以上设计软件主要针对于模型设计或者模型计算与分析验证,可对于特定格式的三维模型文件进行编辑修改查看。
现有的PDM系统可对多种类型的文件进行结构化存储与版本控制,但是由于PDM是利用SQL数据库作为文件索引,并对文件版本进行无差别存储,文件系统中会存储许多我完全相同的文件,当企业研发项目时,由于研发过程中会产生很多产品数据版本,最终会产生巨大的项目版本库,不但造成硬件资源的浪费,还会使版本库在检入检出时效率低下。PMD对于三维模型的版本控制属于离散的方式,一个版本对应一套模型文件,大部分尽提供模型预览的功能,无法对同一个模型的两个版本进行直观的比较,用户只能靠标注和观察的方式进行差异分析,影响效率。
现有三维模型设计软件只注重模型编辑与设计,在模型版本管理方面的能力薄弱,不能对同一个模型或者多个模型文件的集合进行版本控制,在复杂产品研发过程中,不同专业使用的设计软件不同,造成模型文件无法得到系统性的版本管理,影响协同效率。
发明内容
为解决上述问题,本申请实施例提供了一种基于GLFS的三维模型版本控制系统,所述系统包括:模型查看器、模型解析器、差异分析器、模型快照记录器;
所述模型查看器,用于为查看模型信息提供入口;
所述模型解析器,用于解析模型文件;
所述差异分析器,用于利用所述模型解析器的结果进行两组模型快照的差异比较及输出;
所述模型快照记录器,用于对三维模型版本记录及存储。
可选地,所述查看模型信息,包括如下的一种或多种:查看模型网格,查看模型,查看模型变更过程,查看模型差异情况。
可选地,所述模型解析器,使用C语言库csgtool,通过二叉空间分割树对三维模型文件进行构造实体几何操作。
可选地,所述模型快照记录器,用于采用内容寻址技术对模型文件多个版本进行存储。
为解决上述问题,本申请实施例还提供了一种基于GLFS的三维模型版本控制系统的控制方法,所述方法,包括:
当三维模型文件被更新后,模型快照记录器对三维模型版本记录及存储;
若获取到查看模型需求,则模型解析器对更新的文件进行解析;
差异分析器对解析后文件的当前版本和历史版本进行差异比较,输出比较结果,以使用户通过模型查看器查看所述比较结果。
可选地,所述差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还包括:
生成比较结果快照,输出所述快照。
可选地,所述模型快照记录器对三维模型版本记录及存储,包括:
模型快照记录器将三维模型文件存储到版本库中,以使版本库对三维模型版本进行管理。
可选地,所述差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还包括:
增加的模型部分用绿色渲染,删除的模型部分使用红色渲染,没有改变的模型部分使用网格渲染。
可选地,所述输出所述快照,包括:
渲染出当前版本的三维模型,同时提供播放滑块;
当所述播放滑块被拖动时,对所述播放滑块的当前位置对应的三位模型进行渲染,以使用户通过滑块对三维模型整个演进的过程进行浏览。
可选地,所述模型解析器对更新的文件进行解析,包括:
产生一个根节点,将顶点表,结构化三角形表,平面表填入所述根节点;
遍历当前节点的所有备选平面,寻找一个分割平面;若找不到所述分割平面,则当前节点为叶子;若找到所述分割平面,则标记所述分割平面已经被使用过;
在所述前节点下新建一个正向子节点,一个负向子节点;
遍历所有结构化面,对于任一结构化面,若所述任一结构化面在所述分割平面的正向,则将所述任一结构化面和所述任一结构化面对应的平面放入所述正向子节点;若所述任一结构化面在所述分割平面的负向,则将所述任一结构化面和所述任一结构化面对应的平面放入所述负向子节点;如果所述任一结构化面被所述分割平面分割,且所述分割平面未标记已经被使用过,则分割所述任一结构化面,并将分割后的结果放入相应的子节点;
遍历所有细节面,对于任一细节面,若所述任一细节面在所述分割平面的正向,则将所述任一细节面和所述任一细节面对应的平面放入所述正向子节点;若所述任一细节面在所述分割平面的负向,则将所述任一细节面和所述任一细节面对应的平面放入所述负向子节点;如果所述任一细节面被所述分割平面分割,且所述分割平面未标记已经被使用过,则分割所述任一细节面,并将分割后的结果放入相应的子节点;
从所述前节点中解掉所有的结构化三角形、平面和细节面的引用。
有益效果如下:
本申请提供的系统包括:模型查看器、模型解析器、差异分析器、模型快照记录器;模型查看器,用于为查看模型信息提供入口;模型解析器,用于解析模型文件;差异分析器,用于利用模型解析器的结果进行两组模型快照的差异比较及输出;模型快照记录器,用于对三维模型版本记录及存储。本申请提供的系统可以弥补现有的产品数据管理系统和三维模型设计软件对三维模型版本控制的不足和问题。
附图说明
下面将参照附图描述本申请的具体实施例,其中:
图1示出了本申请一实施例提供的基于GLFS的三维模型版本控制系统的结构示意图;
图2示出了本申请一实施例提供的一一种基于GLFS的三维模型版本控制系统的控制方法的流程示意图;
图3示出了本申请一实施例提供的一种版本管理界面示意图;
图4示出了本申请一实施例提供的一种差异分析器的差异比较示意图;
图5示出了本申请一实施例提供的一种快照输出示意图。
具体实施方式
现有的PDM系统可对多种类型的文件进行结构化存储与版本控制,但是由于PDM是利用SQL数据库作为文件索引,并对文件版本进行无差别存储,文件系统中会存储许多我完全相同的文件,当企业研发项目时,由于研发过程中会产生很多产品数据版本,最终会产生巨大的项目版本库,不但造成硬件资源的浪费,还会使版本库在检入检出时效率低下。PMD对于三维模型的版本控制属于离散的方式,一个版本对应一套模型文件,大部分尽提供模型预览的功能,无法对同一个模型的两个版本进行直观的比较,用户只能靠标注和观察的方式进行差异分析,影响效率。
现有三维模型设计软件只注重模型编辑与设计,在模型版本管理方面的能力薄弱,不能对同一个模型或者多个模型文件的集合进行版本控制,在复杂产品研发过程中,不同专业使用的设计软件不同,造成模型文件无法得到系统性的版本管理,影响协同效率。
为了弥补现有的产品数据管理系统和三维模型设计软件对三维模型版本控制的不足和问题,本申请提供一种基于GLFS的三维模型版本控制系统。
参见图1,本实施例提供的基于GLFS的三维模型版本控制系统包括:模型查看器、模型解析器、差异分析器、模型快照记录器。
本实施例提供的基于GLFS的三维模型版本控制系统基于这四种模块进行三维模型的连续性版本管理。
1、模型查看器
模型查看器,用于为查看模型信息提供入口。
查看模型信息,包括如下的一种或多种:查看模型网格,查看模型,查看模型变更过程,查看模型差异情况。
如,模型查看器为用户查看模型网格、查看模型、查看模型变更过程、查看模型差异情况的入口。
2、模型解析器
模型解析器,用于解析模型文件。
模型解析器,使用C语言库csgtool,通过二叉空间分割(Binary SpacePartition,BSP)树对三维模型文件进行构造实体几何操作。
如模型解析器为解析模型文件入口,模型解析器使用C语言库csgtool,用于BSP树对STL等三维模型文件进行构造实体几何操作。
3、差异分析器
差异分析器,用于利用模型解析器的结果进行两组模型快照的差异比较及输出。
4、模型快照记录器
模型快照记录器,用于对三维模型版本记录及存储。
具体的,模型快照记录器,用于采用内容寻址技术对模型文件多个版本进行存储。
如,模型快照记录器用于对三维模型版本记录,并采用内容寻址技术对模型文件多个版本进行存储。
本实施例还提供了一种根据图1所示的基于GLFS的三维模型版本控制系统进行版本控制的方法,该方法包括:
101,当三维模型文件被更新后,模型快照记录器对三维模型版本记录及存储。
如,模型快照记录器将三维模型文件存储到版本库中,以使版本库对三维模型版本进行管理。
102,若获取到查看模型需求,则模型解析器对更新的文件进行解析。
其中,解析过程如下:
产生一个根节点,将顶点表,结构化三角形表,平面表填入根节点。
遍历当前节点的所有备选平面,寻找一个分割平面。若找不到分割平面,则当前节点为叶子。若找到分割平面,则标记分割平面已经被使用过。
在前节点下新建一个正向子节点,一个负向子节点。
遍历所有结构化面,对于任一结构化面,若任一结构化面在分割平面的正向,则将任一结构化面和任一结构化面对应的平面放入正向子节点。若任一结构化面在分割平面的负向,则将任一结构化面和任一结构化面对应的平面放入负向子节点。如果任一结构化面被分割平面分割,且分割平面未标记已经被使用过,则分割任一结构化面,并将分割后的结果放入相应的子节点。
遍历所有细节面,对于任一细节面,若任一细节面在分割平面的正向,则将任一细节面和任一细节面对应的平面放入正向子节点。若任一细节面在分割平面的负向,则将任一细节面和任一细节面对应的平面放入负向子节点。如果任一细节面被分割平面分割,且分割平面未标记已经被使用过,则分割任一细节面,并将分割后的结果放入相应的子节点。
从前节点中解掉所有的结构化三角形、平面和细节面的引用。
例如,采用一个标准库scgtool对三维模型进行空间解析,解析过程为,首先产生一个跟节点,把所有的顶点表,结构化三角形表,平面表全部填入这个根节点中。然后使用二分法进行空间分割:
1、遍历当前节点的所有备选平面,寻找一个合适的分割平面。
2、如果找不到合适的分割平面,这个节点是一个叶子,并返回。
3、如果找到了,标记这个平面已经被使用过。
4、新建两个节点,一个为正向节点,一个为负向节点,挂接到本节点下。
5、遍历所有结构化面。
6、如果结构化面在分割平面的正向,则将这个结构化面和结构化面所对应的平面放入到正向节点。如果为负向,放入到负向节点。如果结构化面被分割平面分割,则分割此三角形,并将分割后的结果放入相应的子节点,当发现结构化面所对应的平面已经被标记,就只放结构化面,不放分割平面,以防止同一个平面用于分割两个以上空间,违反BSP空间二分逻辑的唯一性。
7、遍历所有细节面。细节面的处理采用递归方式与结构化面类似。
8、遍历完毕,所有的结构化三角形、平面和细节面转移到两个子节点中,从本节点中解掉所有的结构化三角形、平面和细节面的引用。节点所需保留的数据只需要是分割平面和两个下级节点的指针即可。
9、对两个子节点,分别从1开始递归执行。
通过以上过程形成一个完整的BSP树,所有的节点均只保留有节点的分割平面和两个下级节点。至此完成了对模型文件的解析,解析后的数据存入缓存进行展示或者差异比较。
103,差异分析器对解析后文件的当前版本和历史版本进行差异比较,输出比较结果,以使用户通过模型查看器查看比较结果。
另外,差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还包括:
生成比较结果快照,输出快照,以使用户通过模型查看器查看快照。
输出快照时,会渲染出当前版本的三维模型,同时提供播放滑块。当播放滑块被拖动时,对播放滑块的当前位置对应的三位模型进行渲染,以使用户通过滑块对三维模型整个演进的过程进行浏览。
通过上述方法实现了种基于快照流技术的模型快照播放功能,即当用户点选某一模型版本时,会渲染出当前版本的模型状态,系统提供快照播放滑块,当拖动滑块时可动态的对模型进行渲染,用户可以通过滑块对模型整个演进的过程进行浏览,如图5所示,左图滑块位于最左端,用户可查看当前的模型样式,当滑块滑行到右图所示位置时,模型相应的进行了状态的变更。
此外,差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还会通过不同的颜色对不同的操作进行渲染,如增加的模型部分用绿色渲染,删除的模型部分使用红色渲染,没有改变的模型部分使用网格渲染。
参见图2,本实施例提供的基于GLFS的三维模型版本控制系统的控制方法,首先用户根据需求在系统中更新三维模型文件,判断用户是否有查看模型的需求,如果有需求,模型解析器对文件进行模型解析,解析后的文件会传输给差异分析器,差异分析器根据当前版本和历史版本进行差异比较,将比较的结果和生成的快照流输出给用户。如果用户不需要进行查看,则文件模型直接存储到版本库中,由版本库进行版本管理。版本管理如图所示的3版本列表,版本列表以时间为坐标,每一次用户对模型作出的变更均会体现在这里。
差异分析器会分析出当前模型较上一个模型版本的差异,如增加的模型部分使用绿色渲染,删除的模型部分使用红色渲染,没有作出改变的模型使用网格渲染。如图4所示的模型差异比较图,图中为导弹模型和一圆柱体,圆柱体为较上一模型新增的内容,导弹模型由于没有作出任何更改,所以以网格形式展现。
有益效果:
本申请提供的系统包括:模型查看器、模型解析器、差异分析器、模型快照记录器;模型查看器,用于为查看模型信息提供入口;模型解析器,用于解析模型文件;差异分析器,用于利用模型解析器的结果进行两组模型快照的差异比较及输出;模型快照记录器,用于对三维模型版本记录及存储。本申请提供的系统可以弥补现有的产品数据管理系统和三维模型设计软件对三维模型版本控制的不足和问题。

Claims (5)

1.一种基于GLFS的三维模型版本控制系统的控制方法,其特征在于,该方法包括:
当三维模型文件被更新后,模型快照记录器对三维模型版本记录及存储;
若获取到查看模型需求,则模型解析器对更新的文件进行解析;
所述模型解析器对更新的文件进行解析,包括:
产生一个根节点,将顶点表,结构化三角形表,平面表填入所述根节点;
遍历当前节点的所有备选平面,寻找一个分割平面;若找不到所述分割平面,则当前节点为叶子;若找到所述分割平面,则标记所述分割平面已经被使用过;
在所述前节点下新建一个正向子节点,一个负向子节点;
遍历所有结构化面,对于任一结构化面,若所述任一结构化面在所述分割平面的正向,则将所述任一结构化面和所述任一结构化面对应的平面放入所述正向子节点;若所述任一结构化面在所述分割平面的负向,则将所述任一结构化面和所述任一结构化面对应的平面放入所述负向子节点;如果所述任一结构化面被所述分割平面分割,且所述分割平面未标记已经被使用过,则分割所述任一结构化面,并将分割后的结果放入相应的子节点;
遍历所有细节面,对于任一细节面,若所述任一细节面在所述分割平面的正向,则将所述任一细节面和所述任一细节面对应的平面放入所述正向子节点;若所述任一细节面在所述分割平面的负向,则将所述任一细节面和所述任一细节面对应的平面放入所述负向子节点;如果所述任一细节面被所述分割平面分割,且所述分割平面未标记已经被使用过,则分割所述任一细节面,并将分割后的结果放入相应的子节点;
从所述前节点中解掉所有的结构化三角形、平面和细节面的引用;
差异分析器对解析后文件的当前版本和历史版本进行差异比较,输出比较结果,以使用户通过模型查看器查看所述比较结果。
2.根据权利要求1所述的方法,其特征在于,所述差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还包括:
生成比较结果快照,输出所述快照。
3.根据权利要求1所述的方法,其特征在于,所述模型快照记录器对三维模型版本记录及存储,包括:
模型快照记录器将三维模型文件存储到版本库中,以使版本库对三维模型版本进行管理。
4.根据权利要求1所述的方法,其特征在于,所述差异分析器对解析后文件的当前版本和历史版本进行差异比较之后,还包括:
增加的模型部分用绿色渲染,删除的模型部分使用红色渲染,没有改变的模型部分使用网格渲染。
5.根据权利要求2所述的方法,其特征在于,所述输出所述快照,包括:
渲染出当前版本的三维模型,同时提供播放滑块;
当所述播放滑块被拖动时,对所述播放滑块的当前位置对应的三位模型进行渲染,以使用户通过滑块对三维模型整个演进的过程进行浏览。
CN201911214010.4A 2019-12-02 2019-12-02 一种基于glfs的三维模型版本控制系统及方法 Active CN110990364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911214010.4A CN110990364B (zh) 2019-12-02 2019-12-02 一种基于glfs的三维模型版本控制系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911214010.4A CN110990364B (zh) 2019-12-02 2019-12-02 一种基于glfs的三维模型版本控制系统及方法

Publications (2)

Publication Number Publication Date
CN110990364A CN110990364A (zh) 2020-04-10
CN110990364B true CN110990364B (zh) 2024-03-01

Family

ID=70089174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911214010.4A Active CN110990364B (zh) 2019-12-02 2019-12-02 一种基于glfs的三维模型版本控制系统及方法

Country Status (1)

Country Link
CN (1) CN110990364B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383955A (zh) * 2016-09-23 2017-02-08 四川电力设计咨询有限责任公司 管道设计中应力分析与三维模型的数据相互转换方法
CN106446468A (zh) * 2016-11-11 2017-02-22 上海核工程研究设计院 一种核电厂可视化电缆辅助设计的系统
CN106874567A (zh) * 2017-01-17 2017-06-20 合肥工业大学 一种基于cad图形的wlan工程规划可视化设计系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119978B2 (en) * 2016-06-08 2021-09-14 Red Hat Israel, Ltd. Snapshot version control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383955A (zh) * 2016-09-23 2017-02-08 四川电力设计咨询有限责任公司 管道设计中应力分析与三维模型的数据相互转换方法
CN106446468A (zh) * 2016-11-11 2017-02-22 上海核工程研究设计院 一种核电厂可视化电缆辅助设计的系统
CN106874567A (zh) * 2017-01-17 2017-06-20 合肥工业大学 一种基于cad图形的wlan工程规划可视化设计系统

Also Published As

Publication number Publication date
CN110990364A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
US11775898B1 (en) Resource grouping for resource dependency system and graphical user interface
US20230122210A1 (en) Resource dependency system and graphical user interface
CN110292775B (zh) 获取差异数据的方法及装置
US10180992B2 (en) Atomic updating of graph database index structures
EP4120199A1 (en) Image rendering method and apparatus, and electronic device and storage medium
Bracci et al. HexaLab. net: An online viewer for hexahedral meshes
US6512995B2 (en) Shape analysis, difference detection, and search for three-dimensional models
CN111078094B (zh) 分布式机器学习可视化装置
US9466041B2 (en) User selected flow graph modification
Khan et al. Data tweening: incremental visualization of data transforms
CN101901265B (zh) 一种虚拟试验数据对象化管理系统
US9928288B2 (en) Automatic modeling of column and pivot table layout tabular data
CN110990467B (zh) 一种bim模型格式转换方法及转换系统
CN113378011B (zh) 一种复杂产品总装数字孪生体的构建方法及系统
CN113760891B (zh) 一种数据表的生成方法、装置、设备和存储介质
US11720543B2 (en) Enforcing path consistency in graph database path query evaluation
CN109376153A (zh) 一种基于NiFi的数据写入图数据库的系统及方法
US10394844B2 (en) Integrating co-deployed databases for data analytics
CN112559351A (zh) 一种cfd软件验证与确认数据库平台
Barquero et al. Extending complex event processing to graph-structured information
US10983997B2 (en) Path query evaluation in graph databases
US20180060374A1 (en) Optimizing column based database table compression
CN110990364B (zh) 一种基于glfs的三维模型版本控制系统及方法
US10140387B2 (en) Model for managing variations in a product structure for a product
CN102722621A (zh) 一种有限元法计算结果的可视化处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant