11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

开扒 SpaceX 飞船技术栈,程序员搞了个 3D 版飞船生成器过瘾

  • 2020-06-01
  • 本文字数:1801 字

    阅读完需:约 6 分钟

开扒SpaceX飞船技术栈,程序员搞了个3D版飞船生成器过瘾

在经历了 十几个小时的飞行后,SpaceX 的载人龙飞船与国际空间站成功对接,国际空间站迎来第一艘商业载人飞船的到访,其背后的技术栈也引起了开发人员的关注,甚至有程序员搞起了 3D 版飞船生成器。


SpaceX 飞船技术栈

美国当地时间 5 月 30 号下午 3 点 22 分,北京时间 5 月 31 日凌晨 3 点 22 分,由埃隆·马斯克创办的航天公司 SpaceX 执行的载人航天发射任务在肯尼迪航天中心圆满完成,可能很多技术人员对于 SpaceX 应用到的技术栈非常关注,导致这个话题在 Reddit 和 Hacker News 上的热度都不低。



载人“龙”飞船完成分离


事实上,SpaceX 的软件工程师曾在 2013 年做过一次公开回应,可以总结出一些相关信息:


SpaceX 使用 Actor-Judge 系统为火箭和航天器提供三重冗余。 Falcon 9 具有 3 个双核 x86 处理器,每个核上都运行着 Linux 实例(操作系统用的是 Linux,还有 LabVIEW 和 Matlab)。飞行软件是用 C/C ++编写的(这一点也得到了 SpaceX 工程师的确认,火箭和飞船的主要编程语言是 C++),并且在 x86 环境中运行 (SpaceX 猎鹰九号和龙飞船用的都是 Intel 双核的 x86 处理器),整个主控程序只有几十万行代码。


注:LabVIEW 是美国国家仪器公司所开发的图形化程序编译平台


对于每个计算和决定,字符串都会比较不同核的返回结果。如果存在不一致,则字符串返回是错误的,并且不发送任何命令。如果都返回相同的结果,则字符串将命令发送到火箭上的各种微控制器,这些微控制器控制是诸如引擎之类的东西。


SpaceX 的软件工程师主要工作就是编写火箭和航天器上运行的代码以及火箭和航天器的设计和制造过程的代码,内部分为飞行软件、企业信息系统、地面软件及航电测试四个团队,人数在几个到数十个人员不等,分别承担不同的研发任务。


此外,SpaceX 的龙飞船主控系统的芯片组仅用了 2.6 万人民币。要知道,这与其他载人飞船搭载的星载计算机和控制器相比(超过一亿人民币),成本极低。


在对 SpaceX 飞船技术栈进行探索的同时,也有开发者搞出了一个 3D 版本的开源飞船生成器项目,这个项目的实际开发时间是在 2016 年,但却在马斯克的 SpaceX 首次载人飞船发射成功后被送上了 Hacker News 热搜,我们也一起看看该项目的实际效果。


Reddit 讨论链接:


https://www.reddit.com/r/programming/comments/gtvmb4/what_computer_and_software_is_used_by_the_falcon_9/


开源 3D 版飞船生成器

Spaceship Generator 项目在 GitHub 上收获了 5.7k 的 star,这是一个 Blender 脚本,可根据代码生成 3D 飞船。真的飞船搞不来,搞一个 3D 版的过过瘾还是可以的。


使用

开发者需要自行安装 Blender 2.76 或更高版本,然后从 Releases 中下载最新的 add_mesh_SpaceshipGenerator.zip,打开下载的 ZIP 文件,然后按照 Under File > User Preferences… > Add-ons enable this script (search for “spaceship”)这个路径启用这个脚本,最后在 3D View 中添加宇宙飞船(Add > Mesh > Spaceship)。


Blender 最新版本下载地址:https://www.blender.org/download/


Blender 是一款免费的开源 3D 创作套件,可用于创建 3D 可视化的静态图像、3D 动画、VFX 镜头,也可作为视频编辑工具。它是一个跨平台的应用程序,可以在 Linux、macOS 和 Windows 系统上运行。与其他 3D 创作套件相比,Blender 对内存和驱动器的要求也相对较小。它的界面使用 OpenGL 框架(创建),为所有支持的硬件和平台提供一致的体验。


主要特征

  • Blender 是一个完全集成的 3D 内容创建套件,提供了广泛的基本工具,包括建模、渲染、动画和 Rigging、视频编辑、VFX、合成、纹理绘制和多种类型的模拟。

  • 它是跨平台的,拥有在所有主流平台上统一的 OpenGL GUI(并可通过 Python 脚本进行定制)。

  • 拥有一个高质量的 3D 架构,可以实现快速、高效地创建工作流程。

  • 拥有活跃的社区支持,详情请参见 blender.org/community。

  • 它有一个小的、可选的轻量级可执行文件。


实际效果

首先从一个盒子开始延伸建造船体,多次拉伸前、后表面,并在此过程中随机添加平移、缩放、旋转效果;其次开始在船体上增加不对称性,选取随机的面并将其以类似的方式改变;然后向船体添加细节,按其朝向对每个面孔进行分类,并在其上生成一些细节,例如引擎、天线、炮塔、照明灯等;最后进行一些细微调整等,如下图:



算法原理

以下截屏使用船体线段数和非对称线段数的极值创建,以显示算法的工作原理。



GitHub 地址:https://github.com/a1studmuffin/SpaceshipGenerator


2020-06-01 13:405845

评论

发布
暂无评论
发现更多内容

如何写一份高可读性的软件工程设计文档

C++后台开发

数据库 软件工程 后端开发 C/C++后台开发 C/C++开发

京东发布这份SpringBoot实战手册带你从0手动搭建企业级商城项目

程序猿阿宇

程序员 面试 java程序员 Spring Boot CLI 秋招

只分享这一次!阿里软件架构师深入底层手写JDK源码

程序猿阿宇

架构 Java 面试 大厂技能 后端技术 秋招

干货来袭!2022阿里巴巴全新出品Spring全家桶全栈笔记(终极版)奉上

程序员小毕

Java spring 程序员 面试 微服务

[ Kitex 源码解读 ] 熔断机制是如何实现的

baiyutang

Go 微服务 微服务架构 kitex CloudWeGo

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

威廉META

数据中台建设(五):打破企业数据孤岛和提取数据价值

Lansonli

数据中台 7月月更

Kubernetes应用管理深度剖析

Bob

云原生 容器化 后端技术 Kubernetes 集群

难道Redis真的变慢了吗?

程序员啊叶

Java 编程 程序员 架构 java面试

《SpringBoot 手册》:国际化组件 MessageSource

看山

springboot MessageSource

4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理

程序员啊叶

Java 编程 程序员 架构 java面试

上天入地Hadoop——使用高性能分布式技术完成大数据处理任务

程序猿阿宇

大数据 架构 Java 面试 java程序员 编程、

CMake库搜索函数居然不搜索LD_LIBRARY_PATH

华为云开发者联盟

后端 开发

六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难

程序知音

Java 程序员 后端技术 秋招 Java面试八股文

我给大家免费公开五份阿里Java架构师学习手册!助力金九银十

程序猿阿宇

架构 Java 面试 大厂面试 大厂技能 秋招

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

程序知音

Java 阿里巴巴 程序员面试 后端技术 八股文

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

鳄鱼视界

五面阿里,终拿offer,不明白为什么面试官总喜欢问Java这种问题

程序知音

Java 阿里 后端技术 八股文 Java面试八股文

想用K8s,还得先会Docker吗?其实完全没必要

程序员啊叶

Java 编程 程序员 架构 java面试

太牛了,百度这份开发手册几乎涵盖了Spring Cloud所有操作

程序猿阿宇

架构 java程序员 java面试 秋招 程序员‘

手慢无!阿里亿级流量高并发系统设计核心原理全彩笔记现实开源

Java全栈架构师

Java 面试 程序人生 分布式锁 架构师

时序数据库在船舶风险管理领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

蓦然回首,“工厂、构造、原型”设计模式,正在灯火阑珊处

掘金安东尼

JavaScript 前端 7月月更

开扒SpaceX飞船技术栈,程序员搞了个3D版飞船生成器过瘾_AI_赵钰莹_InfoQ精选文章