2011-11-01 to 2012-03-01


A behavioral score tracking software

Category: Software

Language: Delphi

Framework: Delphi7

NRZero is a behavioral score tracking software for my high school with Delphi 7. It provides a graphical UI for the manager to record/import/export the behavioral score of students in batches. It can also tag different students with different duties and automatically assign scores to them.
2010-08-01 to 2013-06-01

A collection of Windows Softwares

Windows softwares based on Delphi7

Category: Software

Language: Delphi

Framework: Delphi7

Those softwares are built with Delphi 7 on Windows XP/7 before I went to college, including (but not limited to) a calculator, a text editor, an encrypter/decrypter, an image editor, and so on. I self-taught and developed those softwares independently.
2007-10-01 to 2008-03-01

Listen to the body

A website introducing the magic of body language

Category: Website Design

Framework: Dreamweaver Flash Firework

This is a website introducing different kinds of body languages with text, images and videos. It is built with Adobe Dreamweaver, Flash, and Firework and won the first place in the National Student Computer Artwork. Thanks to Mrs. Zhang.
2014-07-01 to 2014-08-01

Real-time Digit Recognization

Recognize hand-written digit in the browser with CNN

Category: Webapp

Language: Python HTML CSS Javascript

Framework: Theano Flask

A webapp that can recognize the hand-written digit(s) in the browser with CNN, show the likelihood of each digit, and visualize the activations of each layer. The written digit is parsed and preprocess (e.g. cropping, splitting) by the frontend using HTML5 canvas and sent to the backend in real-time. The computational backend is based on Theano and the serving backend is Flask.
2015-03-01 to 2015-10-01

C.O.R.E. (Crowdsourcing Open Redesign Engine)

A set of applications that enable the biologist to edit gene collaboratively

Category: WebApp

Language: Python HTML CSS Javascript Cython

Framework: Flask Mysql

CORE is a platform that allows biologists to edit gene together. Building gene path, to some degree, resembles the procedure of building a circuit and lots of components/paths can be reused. Our platform contains three major components: a forum where scientists can discuss or request a proposal, a bank where scientists can discuss and rate gene paths, and a graphic UI that can build or edit a gene path. I am the leader of the software team and in charge of the backend, database-manipulation, core algorithm implementation, and data processing. For more information, please check [our wiki](http://2015.igem.org/Team:SYSU-Software).
2015-01-01 to 2015-06-01


A tty operating system (with an SDK in C)

Category: OS

Language: C

Framework: qemu

This is a basic OS that I built from scratch to complexity, namely from the most basic assembly code to features like multiple threads. Also, it comes with an SDK in C that allows you to write applications in C. It runs in protect mode (x86) and supports paging, floppy/hard-drive accessing, multi-processing, multi-thread, pipe, file system, memory management, multiple shells and other features. The source code can be accessed at [my github](https://github.com/Shaofanl/HW_TAHITI).
2016-09-01 to 2016-11-01


A light-weight online chatting framework

Category: Software

Language: XAML C# Python

Framework: WPF Flask .NET

Awoo is a light-weight online chatting framework including a client and a server. Users can log in, edit connections and chat/draw with their friends via Awoo. The server is based on Flask and the client is based on WPF (.NET).
2017-09-01 to 2017-11-01

Maze Escaping

A maze escaping game with random maps

Category: Game

Language: C C++

Framework: OpenGL

A maze escaping game that is built with the most basic OpenGL library (not with an engine). It can randomly generate the maps and the avatar-camera can move freely to provide an immersing experience.
2019-03-18 to 2019-03-18

Synbio Box

An educational game that teaches users to build a correct gene path

Category: Game

Language: Javascript

Framework: Unity3D

This is [an educational game](https://indienova.com/g/Synbio-Box) built in Unity3D. The players should gene paths in a correct order to get scores. This is a sub-task in iGEM 2015.
2016-10-01 to 2016-12-01


A system to recognize human's action from a wearable device

Category: Wearable Machine Learning

Language: Python

Framework: Myo Sklearn

By hacking and analyzing the raw biological electronic signal from a wearable device (i.e. Myo, an armband), the system can recognize the human's action type after certain training.
2017-09-01 to present


Artificial Intelligence composing

Category: Machine Learning Deep Learning

Language: Python

Framework: TensorFlow Pytorch

This is originally a class project in USC CSCI599 (Deep Learning and its Application), but later becomes my independent research work after the class finished. In the origin project, we mainly achieved three goals: (1) reimplementing and improving the existing models on AI composing; (2) introducing new models to compose; (3) building an interactive system that allows human to compose with the machine (with their body). For more information, welcome to visit [our wiki](https://hackmd.io/s/rkZsNt9xf), [my github repo](https://github.com/shaofanl/deepsymphony), and [my experiment logs](http://shaofanlai.com/exp/1).
2018-03-01 to 2018-06-01


An Android/web application to search places

Category: WebApp Android

Language: HTML CSS Javascript Java Typescript NodeJS

Framework: Android Angular Bootstap

OpenPlace is a handy application that can help people searching places in an easier way on a web-page (based on Angular5) or Android. The user can search for places (e.g. "pizza", "gas station") near them or near a given location. They can also store the result for next visiting. Moreover, the user can further check the information, photos, reviews, and direction with one click. Please check [this post](http://shaofanlai.com/post/83) for more information.
2009-01-01 to present

Brief History

A brief Skill-Adapting history
Started to code (Pascal) since 2009, I self-taught myself various kinds of development/research and build tons of codes based on pure impulse for Computer Science. Thank for all who had guided me when I need help. Software development: - 2009~2011: Web Design with Adobe Dreamweaver/Flash/Firework - ~2013: Delphi Development (Windows Application) - ~2014: WebApp - ~2015: WebApp, OS - ~2016: WebApp, CPU, Compiler, Unity3D - ~2017: WebApp, Wearable Dev, VR, WPF, Xamarin - ~2018: WebApp, Android, - ~2019: WebApp Research: - ~2013: Machine Learning - ~2014: Computational Intelligence (CI), Deep Learning (DL) - ~2015: DL, Metric Learning, CI, Attention - ~2016: DL, Transfer Learning, Generative Adversarial Network (GAN), Computer Vision (Person Re-identification) - ~2017: DL, AI Music, GAN, Sequential - ~2018: DL, AI Music, GAN, Reinforcement Learning - ~2019: DL for fun Self-Assessment: - As a developer, I can quickly adapt any tools/frameworks and love debugging (even the bug is in the lib's source code or machine code :] ) - As a researcher, I have a strong basic knowledge for ML/DL/CI and cover a wide range of fields in DL. I am good at brainstorming, especially bridging different methodologies together. My ultimate research goal is to build a general AI with insights from psychology (rather than dark magic of DL).
2014-03-06 to present

My Blog

My Personal Blog

Category: WebApp

Language: Python HTML CSS Javascript

Framework: Flask MySQL Nginx Uwsgi Bootstrap

This blog is built on my own from scratch (e.g. server, database, backend and frontend). Please check [this comprehensive log](http://shaofanlai.com/post/82) for more details.
2019-03-01 to present


A webapp that can render/publish your projects list (resume-like) online

Category: WebApp

Language: NodeJS HTML Javascript CSS Swig

Framework: Firebase Realtime Database Firebase Auth Firebase Hosting Firebase Cloud Function Bootstrap

A web application with a GUI where the users can edit their project and automatically render/publish the project list online. The project is based on Google Firebase Framework and still in development.