专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
码农翻身  ·  漫画 | 为什么大家都愿意进入外企? ·  昨天  
程序员的那些事  ·  清华大学:DeepSeek + ... ·  3 天前  
程序员小灰  ·  清华大学《DeepSeek学习手册》(全5册) ·  2 天前  
程序员小灰  ·  3个令人惊艳的DeepSeek项目,诞生了! ·  2 天前  
OSC开源社区  ·  升级到Svelte ... ·  5 天前  
51好读  ›  专栏  ›  SegmentFault思否

这是全中国最好的 hackathon

SegmentFault思否  · 公众号  · 程序员  · 2018-05-17 08:00

正文

FixPlusPlus

  1.      ____    ______  __   __    __        __          

  2.     /\  _`\ /\__  _\/\ \ /\ \  /\ \      /\ \        

  3.     \ \ \L\_\/_/\ \/\ `\`\/'/' \_\ \___  \_\ \___    

  4.      \ \  _\/  \ \ \ `\/ > <  /\___  __\/\___  __\    

  5.       \ \ \/    \_\ \__ \/'/\`\/__/\ \_/\/__/\ \_/    

  6.        \ \_\    /\_____\/\_\\ \_\ \ \_\     \ \_\    

  7.         \/_/    \/_____/\/_/ \/_/  \/_/      \/_/    

FIX++ (FixPlusPlus) is a professional display solution for future guidelines and instruction manuals. You can view our project instructions on http://fixplusplus.com.

声明

因为我们是抱着纯Hacker的心态来参加这次比赛,再加上我本人最近被《硅谷》这部美剧洗脑的不轻(逃……),所以我们在头脑风暴的时候不是以商业前景作为主要衡量标准,而更注重技术的实际性,前瞻性和它在生活中的应用场景。我们希望Hack出一个技术上酷炫,使用时让人拍手称快的东西。因此我们抛弃了几乎所有我们在前一个小时想出来的想法,除了最后这个我们决定尝试去实现的创意。

说实话,当我们获得第一,有人咨询我们是不是创业团队并且愿意考虑投资的时候,我确实动心了。但是一年多前失败的创业经验和《硅谷》这部美剧让我明白在缺乏经验的时候我们应该专注于我们在做的事情,努力把我们想做的事情做得更好,更酷炫,更有价值,因此在犹豫和思考了几天并和团队成员商量后,我希望把我们的项目开源,让更多的人能够看到我们的创意,加入我们一起把fix++完善起来。

这是一项很大的工程,不仅在文件大小方面,在潜在的工作量方面也还有很多需要改进和创新的。我们在20个小时里面所完成的这个demo,只是我们想象的蓝图中得很核心,很表面的一部分。剩下几个小时我们都在干嘛……可以告诉大家我们在讨论fix++这个名字……

当然,开源还是希望这个东西能够成长才做出的决定。我不反对其他个人或者团队按照我们的思路去实现什么商业化的产品,毕竟,这个应用潮流,起源于segmentFault的一次Hackathon,起源于我们hACKbUSTER团队,这就足够我们骄傲和幸福了。

好了,废话不多说了,开始介绍项目吧。

项目地址在这里: https://github.com/hACKbUSTER/FixPlusPlus 。各种求Star求贡献!

底层技术

  • Unity3D

  • Vuforia 引擎(曾经属于Qualcomm)

  • 3D建模工具(3D Max,modo...whatever)

  • iOS application

未来可能会拓展的底层技术:

  • ARToolkit

  • 模型扫描技术

  • 3D快速建模

项目结构

整个项目目前分为两个客户端,一个是用Unity编写并导出到iOS平台上的主客户端,一个是用iOS原生框架编写的仿iFixit的客户端。所以在仓库里的 IFixit 4 目录就是Unity工程的目录,我和思宇都是周六晚上速成的Unity,所以Unity的使用我们不介绍了。 IFixit - Hackathon 则是仿IFixit的客户端,UI是硕硕凌晨四点在建完所有模型之后做出的设计图,我用了半个小时写完也撑不住睡着了……

scanner 目录下是一个特殊的apk文件,这是我们使用的Vuforia引擎所支持的手动输入识别物的扫描器。你可以使用这个目录下的pdf文件打印出来的特殊纸张,加上这个apk安装的扫描器,来录入识别物。而这个识别物等同于后面看到的二维码。

在Unity项目中,我们导入了很多模型,这起源于我们想展示一个物体的结构爆炸图,因此我们简单地做了Pro里面的主板,硬盘,光驱和电池,哦,还有一个会转的风扇。

实现原理

我们采用的Vuforia引擎所特殊之处就在于,有了一个标志明显的识别物之后,我们可以在虚拟空间中建立起一套和现实空间基本重合的坐标系,而引擎会帮我们做好旋转和倾斜角这些外界因素的变化处理。因此我们可以以现实空间中的一个固定标志物来对应现实空间中的物体,从而做到在摄像机里看到电脑上的指示箭头和文字不论你怎么移动相机,他们和电脑的位置都是相对固定的。这种体验更加的真实。

我们在Unity中建立了两个场景,分别对应了电脑的爆炸结构图展示场景和之后的维修步骤展示场景。在项目中分别命名为 BoomScence InFixScence ,我们需要做的是导入Vuforia所有的库,然后就是建好电脑的模型,将模型和以二维码为原点的坐标系的相对位置确定好。

在爆炸结构图场景中,我们实现了一个滑块拖动放大缩小展开距离的小功能,这个功能是由场景对应的脚本来实现的,即拖动滑块的时候会更新场景中各物体的位置,由于对应的加速度不同,因此看起来就会成为一个爆炸的效果。

切换到接下来的拆解步骤展示场景后,我们也是利用脚本来控制步骤的展示,即下一步和上一步的操作。原理和上面相同,在电脑上方你能看到的文字框其实也是建模出来的一个3D模型罢了。

我们想要做什么

这个应用的应用场景很广泛,取决于你的生活。例如:

  • 拆电脑

  • 拆手机

  • 任何的简单电器维修

  • 乐高玩具的拼装







请到「今天看啥」查看全文