我的简历

少女dtysky

世界Create

时刻2022.12.28

路标

简历

H光

邮箱 : dtysky@outlook.com

Github : dtysky

Bilibili : 瞬光寂暗


学历和工作

2020.08 - 现在,微信,小程序基础,图形/前端搬砖
2019.07 - 2020.07,支付宝,前端技术专家
2018.03 - 2019.07,支付宝,高级前端开发工程师
2016.08 - 2018.03,哔哩哔哩,前端工程师
2015.10 - 2016.07,上海禾赛光电,软件工程师
2015.07 - 2015.09,华为,逻辑(FPGA)工程师
2014.10 - 2015.06,Xilinx,研发实习生
2011.08 - 2015.06,东南大学,测控技术与仪器,工学士

发展方向

游戏开发和WEB开发。

技能

工具

工作语言:TypeScript, C#, C++, CSS...需要什么就写什么呗,哪有那么多讲究。
领域技术:WebGL,WebGPU,FPGA,游戏开发...需要什么去学呗,哪有这么多讲究。
业余语言:Rust, Python, Scheme, VHDL, Verilog...更没讲究了,写着玩。

专业领域

工作:WEB开发, 游戏引擎开发, 图形学
业余:数字图像处理, FPGA, 文学/影像创作

个人介绍

生命是积累痛苦的巡礼,但这断然不是虚无与毁灭的故事,在前方一定还存在着救赎和希望。

非典型码农,INFP,ADHD,宿命论者,混乱善良。自洽,坦然,从容。
厌恶无聊,追求有趣,言出必遂,尽力而为。但为了避免过早毁灭,也知道节制。
最欣赏的特质是清醒和勇气,最讨厌的特质是怯懦和贪婪。
看过不少书,经历过不少事,但仍旧保持着初心。
从小漂泊过半个中国,没有故乡。
毕业后换过四个城市五家公司,在B站用爱发电过,在阿里经历过斗争,现在在鹅厂搬砖,工作内容和兴趣一致。
事业比大多同龄人快,见识过很多光鲜外表下的不堪,看透了许多事,觉得任何交往中最重要的是真诚。
人格已达「完全之形」,拥有不随环境变化的强硬核心,承受逆境的能力很强。
对世俗物质本质上没有需求,但仍然在不影响创作的前提下努力工作赚钱,为了获得更多的体验作为输入。
严格来说我有很多种世俗上更好的选择,不过都放弃了。
因为从个人审美来看,现在选择的这种生存方式可能会支付更多代价,但却是最美丽动人的。

欣赏过一些严肃文学,文艺片,舞台剧,摇滚,独立游戏。
持续探索适合自己的创作方式,想创作出令自己满意的作品,并产生社会价值,让他人得到慰藉或清醒。
写过剧本小说,系统学过画画,尝试过唱歌,学摄影中。每周末都会出去拍VLOG,假期会出去旅游。
因社恐长期探索自拍方式,目前借助A7M4和后期调色加持,渐入佳境。

年少时蔑视命运,坚信“我命由我不由天”、“人定胜天”,做事没有节制和分寸,以对自己和周围的损害换取高人一等,现在想来只是不知道恐惧、也不知伤害为何物。
再后来总是被命运戏弄,了解到了人的局限性,知道了人不一定胜天,就多了些怯懦和贪婪,想苟活于世,尽可能向这个世界索取更多,达到一种“盈余”性质的无憾。
而现在终于理解了命运的本质:“命”为宿命,在人生的起点便已经达成了某种意义上的结束,是无法改变的一个范围;而“运”则为运势,是可以尽力去改变和拨弄的,而这种“拨弄”,就是在既定结局前的选择。
向世界索取一些,然后再向世界归还等价的一些。选择与代价的一体两面,成长所意味的背负,以负担换取生命的厚度。知晓恐惧后却仍要向前走,观测之后更重要的是付诸行动。
以前不理解为什么异域镇魂曲的主角在历经一切、得知真相的最后,选择放弃永生随意捡起一把武器冲向战场,现在我终于彻底理解了——

“意义并不在于‘包罗万象’的观测,而存在于任一行动的回响之中。”

这大概就是所谓“命运”在审美层次的真正内涵吧。


主要项目(工作I)

XR-FRAME

说明: 在微信小程序中,实现一套官方的混合渲染、高性能、易用、强扩展性、渐进式、遵循小程序开发标准的XR渲染方案。
规模: 大
性质: 公司项目
职位: 主要负责人,整体架构设计、渲染系统、资源系统、XR系统。
进度: 第一版已发布,第二版开发中
使用技能:
图形学, 前端架构, 游戏引擎架构, XR, Typescript, C++......
详见官网:微信小程序 XR-FRAME
惯例彩蛋:小程序示例官方AR彩蛋,开启传送门探寻世界真相
完成内容:

  1. 负责了整体架构,在顶层实现了一个小程序的渲染后端,提供了给用户高度的组件定制、资源定制能力。
  2. 基于跨平台的渲染层(微信内是客户端实现),负责了主体渲染前端和WebGL后端的实现。
  3. 其他重要系统,例如资源系统、AR系统、后处理系统等等的实现。
  4. 富有个人特色的文档,全面的数据上报监控。
  5. 和多个团队以及外部服务商对接合作,进行业务落地的推进。
  6. 第二版将实现3D和2D标签的混合,在GL中统一渲染,便于开发者实现更加酷炫的UI。

微信小游戏高性能解决方案

说明: 在微信小游戏环境内提供逼近原生的性能。
规模: 超大
性质: 公司项目
职位: 主要负责渲染部分。
进度: 全新版本已发布
使用技能:
图形学, 游戏引擎架构, Typescript, C++......
详见官网:微信小游戏框架
完成内容:

  1. 参与渲染引擎设计,与同事一同决定了渲染部分的方案。
  2. 负责了整个渲染引擎前端部分的实现。
  3. 负责了整个引擎的Web跨端方案实现。

项目已经支持不少项目,比如新轩辕传奇天龙八部荣耀版,可在微信小程序内直接搜索游玩。

支付宝2020新春五福活动

说明: 负责首页3D展示福满全球亿级前端项目中的3D技术-支付宝2020年新春活动的背后
规模: 大
性质: 公司项目
职位: 项目前端负责人。
进度: 已上线
使用技能:SEIN.JS
完成内容:

  1. 主会场3D模型,5个场景,极致优化,只占20M内存。
  2. 福满全球,几乎所有元素都在3D场景内,所有材质均为定制,极致优化了内存。
  3. 可靠的降级方案。
  4. 覆盖面极广(10亿用户级),极低的闪退率。

SEIN.JS

说明: Web3D游戏引擎。
规模: 超大
性质: 公司项目
职位: 项目负责人,负责内核开发,体系设计,跨BU合作项目管理,部分工具开发
进度: 已开源,持续迭代中
使用技能:
图形学, 游戏引擎架构, Typescript, Unity, Unreal4, C#, Webpack, WebAudio......
项目源:一系列项目,比如Sein.jsSeinJSUnityToolkitseinjs-gltf-loader等等...
惯例彩蛋:荒诞,艺术,存在
完成内容:

  1. 游戏引擎本体
  2. 空间音频系统、相机控制器、GUI等扩展系统(合作)和组件。
  3. Unity扩展
  4. CLI
  5. 一系列Webpack扩展Loader以及Plugin
  6. VSCode扩展
  7. Inspector

项目已经支持内部不少业务。

Paradise平台

说明: 支付宝内部互动图形探索平台。
规模: 大
性质: 公司项目
职位: 项目前后端负责人
进度: 完成
使用技能:
Typescript,NodeJS,React, Mysql......
项目源:闭源
完成内容:

前端以及服务端,拥有各种复杂的逻辑,包括但不限于创建作品、自动创建仓库、绑定HOOK自动构建、审核、测试、CLI、Lottie和3D模型预览发布等等。

Bilibili圣诞音游《Jingle Beats》

说明: Bilibili圣诞音游《Jingle Beats》
规模: 大
性质: 公司项目
职位: 项目前端负责人、开发者、原案
进度: 完成
使用技能:
PIXI.js, Typescript, WebGL, Tween,MUG、Touch Events......
项目源:Bilibili圣诞游戏剖析-用pixi.js实现鬼畜音游
完成内容:

一个HTML5的偏硬核音游,基于2D渲染引擎PIXI.js。

Bilibili七夕游戏《Double;7》

说明: Bilibili七夕游戏《Double;7》
规模: 大
性质: 公司项目
职位: 项目前端负责人、开发者、原案、制作进行
进度: 完成
使用技能:
Egret, Typescript, WebGL, Tween......
项目源:egret-galgame
Bilibili《七夕之约 - Double;7》技术剖析
完成内容:

一个HTML5的Galgame,基于游戏引擎Egret,使用了陀螺仪、Websocket等技术,用技术为阿宅带来人文关怀。

BML2017主视觉

说明: BML2017主视觉
规模: 大
性质: 公司项目
职位: 项目前端负责人和开发者
进度: 完成
使用技能:
Node.js, React.js, Typescript, Less, Webpack......
项目源:BML2017主视觉技术剖析
完成内容:

一个酷炫的主视觉,用到大量DOM动画和H5视频,PC和移动端双端适配,包含一个复杂的贴吧性质的讨论区。

Bilibili活动管理后台

说明: 一个超大型复杂管理后台。
规模: 超大
性质: 公司项目
职位: 核心开发者和架构者之一
进度: 完成
使用技能:
Node.js, React.js, Redux, Express.js, ES6, Scss, Webpack......
项目源:闭源。
完成内容:

大型活动管理后台,包括一个复杂CMS,数据源聚合管理,权限系统和发布系统。
全栈开发,前端技术栈为React + Redux + React-router + Immutable,后端技术栈为Node + Express。

业余项目

Project Tomorrow

说明: 独立游戏。
规模: 大
性质: 梦想
职位: 负责人,剧本,程序,演出,出钱
进度: 剧本创作
使用技能:写作,游戏开发,花钱
完成内容:

第二版剧本已完成,MVP版本创作中。

Awaken

说明: 基于Hybrid方案和WebDAV的全平台开源阅读软件。
规模: 中
性质: 产品输出
职位: 独立完成
项目源:
Awaken
使用技能:Hybrid,WebDAV,Android,iOS,Tauri,React
完成内容:

功能介绍:Awaken-开源跨平台多端同步阅读软件
技术教程:Awaken-基于Hybrid方案和WebDAV的全平台开源阅读软件

Project Love

说明: 29岁前交友企划,以及某种意义上的人生回顾。
规模: 中
性质: 记录
职位: 创作
进度: 完成
使用技能:写作,剪辑
完成内容:

公众号发文:Project Love
VLOG:某「非刻板印象INFP码农」的日常一天

Project Self

说明: 28岁自我记录企划。
规模: 中
性质: 记录
职位: 需求定制,创作,演讲
进度: 完成
使用技能:写作,花钱
完成内容:

写真集+文章:Project Self
个人访谈:访谈公众号发文

WebGPU Renderer & Path Tracer

说明: 一个基于WebGPU的渲染引擎,以及基于其实现的路径追踪渲染器,并产出了系列教程。
规模: 中
性质: 技术学习
职位: 独立完成
进度: 完成
项目源:
webgpu-renderer
Live Demo
使用技能: WebGPU, Typescript, 图形学
完成内容:

使用WebGPU实现了一个渲染器,包含绝大部分3D渲染功能。
利用渲染器,使用光栅化+计算着色器混合方式,实现了一个路径追踪渲染器,其中包括场景合并、BVH构建、射线求交、蒙特卡洛方法、BRDF、BSDF、降噪等。
产出了多篇系列教程:WebGPU实时光追美少女系列

Double;14

说明: 庆生用原创游戏。
规模: 中
性质: 生日纪念
职位: 剧本,程序
进度: 已完成
使用技能:
写作,编剧,Unity
项目源: 闭源
完成内容:

游戏录屏: 《Double;14》个人独立游戏 小说版本: Double;14

gl-matrix-wasm

说明: 将gl-matrix移植到WebAssembly。
规模: 中
性质: 技术输出
职位: 独立完成
进度: 完成
项目源:
gl-matrix-wasm
Live Demo
使用技能: Rust,WebAssembly
完成内容:

使用Rust + wasm-bindgen + wasm-pack技术栈。
提供分离、单JS两种形式。
包含完全的单元测试,以及完整的Benchmark。

D2-2017前端论坛嘉宾

说明: 代表B站,在D2-2017前端论坛进行了分享,中心主题和PPT在这里:D2-现代前端-对视觉和交互的探索
规模: 中小
性质: 分享
职位: 独立完成
进度: 完成
使用技能: PPT,演讲......

kanata

说明: 一个纯前端实现、无依赖的图像处理库,纯TypeScript编写,并在计划WebAssembly的版本。
规模: 中
性质: 技术输出
职位: 独立完成
进度: 开发中
项目源:
kanata
Live Demo
使用技能: TypeScript,React.js,数字图像处理......
完成内容:

主要包含一个ImageCore和若干点操作、几何变换、直方图操作和局部滤波器。
本身支持单操作引用,设计上支持流式处理,为敏感的性能做了一些优化,优于市面上很多库。
目前已然实现了许多操作并搭好了测试框架、写了一部分测试,剩下的操作正在实现中。

hana-ui

说明:和两位队友一起实现的一个React UIKit,作为本项目的负责人,我设计项目框架,完成了项目开发、文档和DEMO的整体结构。除了设计,我也承担了相当的组件开发,在这个过程中我对React、工程化和样式的理解都大有进步。
规模: 中
性质: 技术输出
职位: 独立完成
进度: 已完成并在内部系统可用、部分外部系统可用,开源准备中。
项目源:
hana-ui
Homepage
惯例彩蛋:hana song
使用技能: React.js, ES6, Scss......

BlogReworkPro

说明: 重构BlogRework,这是此Blog迎来的第四次重构了,和上一次的间隔比预期要早一些,不过这种事早点没啥坏处。这次重构主要是重写了前端、修了一些后端的BUG,跟进ES6,用Eslint和Flow约束代码规范,上了React最佳实践全家桶并且实现了完美的服务端渲染,加了Memory Cache,样式换成了less,DOM语义化也做了,构建工具也换成了gulp,也就是说,上一次遗留的Feature基本都搞定了。
规模: 中小
性质: 新技术学习实践
职位: 独立完成
进度: 完成
使用技能:
Python, Node.js, Flask, React.js, Redux, MongoDB, Express.js......
项目源:
BlogRewrokPro
【React/Flask】BlogReworkPro-Rework the BlogRework
【React/Redux/Router/Immutable】React最佳实践的正确食用姿势
【React/Redux】深入理解React服务端渲染
【Flask/React】此博客服务端的缓存实现
【Less】实现可选参数以及各种autoprefixer
完成内容:

  1. 服务端渲染。
  2. 内存缓存。
  3. 资源优化。
  4. SEO。

MoeNotes

说明: 正在使用Redux + RXJS重构。MoeNotes是一个简单的日记写作软件(当然,我也用其写一些不是特别复杂的小说和文章),不同于印象笔记、Onenote、Leanote等,它所要解决的问题仅仅是“本地展示”,也就是在本地管理你的日志文件,并提供一个类似于Onenote的分类体验。本软件使用Markdown作为笔记编写语言,每一篇日记都会以.md文件的形式保存到本地而不是数据库中,用户可以自行选择如何同步这些文章以及将它们同步到多少地方,完全不依赖于平台,这也是我编写本软件而不使用现成日记软件的一个主要的原因。当然,对文章和分类进行拖动排序也是被支持的。除此之外,本软件还支持“即写即看”,“专注写作”和“专注阅读”三种模式,也可以进行主题的切换和自定义,由于是基于web进行得开发,所以扩展起来也十分方便和简单。
规模: 中
性质: 造一个满足自己需求的轮子
职位: 独立完成
进度: 完成
使用技能:
Javacript, Node.js, React.js, Electron, HTML, CSS, Grunt, Webpack, Jasmine......
项目源:
MoteNotes
Github
完成内容:

  1. 本地文件树管理。
  2. OneNote的分类体验,增强版Markdown支持。
  3. 即使预览、专注写作和专注阅读模式。
  4. 可定制主题。

BlogRework

说明: 重构Blog为SPA。
规模: 小
性质: 新技术学习实践
职位: 独立完成
进度: 完成
使用技能:
Python, Node.js, Flask, React.js, MongoDB, Express.js, Jade, CSS......
项目源:
[Flask/React/MongoDB]BlogReworkIII-如何搭建一个动态Blog
BlogRewrok
完成内容:

  1. 扩展Markdown文章解析以及数据库管理。
  2. 后端Web服务器。
  3. 前端界面。
  4. 前端WEB服务器。
  5. SEO。

主要项目(工作II)

激光雷达上位机

说明: 用于展示激光雷达的3D数据,包括实时显示、数据录制、数据回放。
职位: 负责人
进度: 基本功能完成
使用技能:
JavaScript, C++, Python, Electron, Node.js, React, Three.js, HTML, CSS, Webpack, Grunt 项目源: 闭源
完成内容:

  1. 整体功能分析,实现了UI的设计和所有功能的开发。
  2. 用Electron作为框架,使用web的方式开发了桌面应用。
  3. 编写了C++的Node.js扩展,提高了点云坐标系转换效率。
  4. 用Three.js完成了点云的绘制。
  5. 实现了数据、显示、控制的隔离,自己实现了事件驱动的设计,保证可维护性。

无人机甲烷监控数据可视化平台

说明: 将后台数据库进行表格形式的显示,兼容WEB、iOS和安卓三个平台。
职位: 负责人
进度: 基本完成
使用技能:
JavaScript, Python, Flask, MySQL, HTML, CSS, PyJade, Node.js, React native, Object-C
项目源: 闭源
完成内容:

  1. 开发基于Flask的后端以及使用PyJade模板进行网页显示
  2. 开发了一版Object-C编写的APP,用于熟练iOS底层。
  3. 用React native开发了iOS和安卓的APP。
  4. 设计了美观的UI。

PM25传感器数据监测平台

说明: 接手项目,开发一个数据监测平台,收集不同地方的传感器传回的数据,进行记录和分析
职位: 负责人之一
进度: 正在进行
使用技能:
JavaScript,Node, React, MongoDB, Grunt, Python, HTML, CSS
平台:
OSX(开发),Ubuntu(部署)
项目源: 闭源
完成内容:

  1. 开发基于Node.js的后端
  2. 开发基于React.js的前端,用Grunt管理。
  3. 包含数据库管理,数据下载,数据呈现等功能。
  4. 做了设计,美化了UI。

无人机定位

说明: 寻找并实现无人机的一些定位方式
职位: 负责人
进度: 基本完成
使用技能:
Python
平台:
Windows(PC),Ubuntu(Ordroid)
项目源: 闭源
完成内容:

  1. 差分GPS的研究和应用。
  2. 激光定位的研究和应用。
  3. UWB定位的研究和应用。

主要项目(大学)

梦见星空之诗 - Aria der Freiheit und des Seins:

说明: 原创游戏。
规模: 超大
性质: 梦想
职位: 企划,监督,设定,剧本,程序
进度: 长期规划,剧本重构中
使用技能(已经):
哲学(半吊子),设定,写作,编剧,Python,Ren'py
使用技能(预定):
Unity3d,编译器设计,FPGA设计,商学
项目源: 闭源
完成内容:

  1. 游戏剧本解析器。
  2. 70万字剧本原稿。
  3. 游戏系统和界面(暂定)。

体三维显示器:

说明: 一个分辨率较高的、由二维LED点阵旋转的三维显示器。
规模: 大
性质: 省级SRTP
职位: 独立完成
进度: 基本完成
使用技能:
PCB,FPGA,C,C#,Autocad
项目源:
控制PCB机械
完成内容:

  1. 学习Cadence套件,设计了一个由0603LED,PMOS,NMOS构成的120*114,密度为15.2d、cm^2的LED阵列;同时,完成了由触发器、锁存器、电源部分构成的此LED阵列的控制板,控制板为四层,走线密度较高。
  2. 学习使用FPGA,利用Altera的CycloneIV系列的器件,使用VHDL语言完成了:
    1).DDR2控制器,完全由自己实现,并自己编写Testbench,利用Modelsim进行了批量数据验证,但缺少PHY的支持。
    2).LED控制器,完全由自己实现,使用ROM进行了板上验证。
    3).学习使用高速USB芯片cy68013,熟悉其slave-fifo模式,完成了它的FPGA控制部分,进行了板上验证。
  3. 学习使用C#语言,使用cy68013芯片的提供的. net下的API,完成了其上位机。
  4. 学习C语言,完成了cy68013的固件部分设计。
  5. 机械部分的设计,设计了底座、联轴器,以及LED阵列的装载板;使用Autocad设计。
  6. 基于Matlab的三维切片。

游戏剧本解析器:

说明: 一个分离剧本和代码的解析器,用于将自己设计的DSL解析成Ren'py的脚本,提供扩展和输入插件。
规模: 中
性质: 个人项目
职位: 独立完成
进度: 基本完成
使用技能: Python,Ren'py
项目源: Gal2Renpy
完成内容:

  1. 学习使用游戏引擎ren’py和Python,了解了各自特性。
  2. DSL的形式继承自xml语言,自己完成了标记语言的解析,以及与ren’py脚本的映射,同时提供给用户自行扩展的接口,具有良好的可扩展性。
  3. Sublime的插件,方便输入。

FPGA Image Library:

说明: 一个开源的FPGA图像处理库,将一些图像处理操作在FPGA上实现,每一个操作都会封装成一个模块,并拥有各自的软件测试与功能仿真,测试图片可以自由选取,并且设计为统一接口,流水化处理。
规模: 大
性质: 独立项目
职位: 独立完成
进度: 1.0版本发布,由于工作原因暂时中断= =
使用技能: FPGA设计(Verilog, SystemVerilog),Python,图像处理
项目源: FPGA-Imaging-Library
完成内容:

  1. 灰度化,二值化,亮度和对比度变换。
  2. 彩色字符输出(任意字体)(暂停)。
  3. 帧控制器,行缓存生成器,窗口生成器。
  4. 窗口均值滤波,二值腐蚀膨胀,二值模板匹配,灰度腐蚀膨胀,排序滤波器。
  5. Harris角点检测。
  6. 平移,缩放,镜像,裁剪,旋转,仿射变换。
  7. 预计加入直方图操作。

我的主页:

说明: 一个用于记录自己学习经验的博客。
规模: 小
性质: 个人项目
职位: 独立完成
进度: 完成
使用技能 HTML,CSS,JS
项目源: 不开源 完成内容:

  1. 学习使用pelican(基于jinjia2),学习css、html、js,在VPS上搭建。

一个面向教学的单周期MIPS CPU:

说明: 一个MIPS CPU,单周期32bits,vivado搭建,模块化设计,设立了tcl文件简化预览。
规模: 小
性质: 实习项目
职位: 独立完成
进度: 完成
使用技能:FPGA设计, Verilog, Systemverilog, Python
项目源: SIMPLE_MIPS_CPU
完成内容:

  1. 完成了ALU, REGFILE, CONTRLO_UNIT, DATAPATH, INST_MEM, DATA_MEM模块的设计与随机测试,并将它们拼接,完成了用于功能仿真的CPU。
  2. 完成了KEY2INST, SHOW_ON_LED模块的设计与测试,将它们拼接于以上模块中,设计了一台按键编码,用于CPU的板上测试。
  3. tcl文件的建立,用户可以在vivado界面写source tcl文件来快速建立工程。

其他

欲戴皇冠,必承其重。

一个人不可能被所有人理解,这几年遭受的攻击、嘲讽、中伤即从中来。

人要为其言论负责,表达的代价也即为此。

如此坚持的结果应有两种可能——倘若无悔,那将是无上的荣耀;倘若后悔,也将是深刻的戏谑。

但无论如何,这种种经历都会成为我一生的注脚。

当拥有了永恒的视角后,你可以选择入戏当演员去起舞,也可以选择出离来当个观众,但只有一点:

作为演员的时候,我们不可忘却愤怒。
作为观众的时候,我们不可忘却叹息。

我将倾尽所能去体验、去观测、去记录、去表达。
不能迷惘、不许后悔、不准遗憾、不计代价、不可回头。
直至肉身灭亡的一刻到来。

如果不是自己的创作,少女是会标识出来的,所以要告诉别人是少女写的哦。