My Project


Crawling Framework: CrawlerPlusPlus [C++14] | 2017.2 ~ 2017.5

  • Implemented a multi-threaded web crawler using modern C++ (C++ 14)
  • Used modern C++ features, e.g. variadic template, lambda, smart pointers, std::thread and std::function
  • Implemented separate parsers for HTML file and JSON file; Supported session storage and authentication
  • Achieved an 100% performance improvement comparing to the popular python crawling framework: Scrapy
  • Source code

Compiler: Lava [OCaml, LLVM] | 2017.2 ~ 2017.5

  • Implemented a C++-like language compiler using OCaml
  • Compiled the source code to the LLVM IR
  • Supported int, float, string, array and class data types which can be casted between each other with casting operator
  • Implemented string manipulations such as string concatenation, copy and memory allocation
  • Source code

Plague Simulation: Going-Viral [Spark, Python, HTML, JavaScript] | 2016.12 ~ 2017.1

  • Simulated the spread of a worldwide plague carried by airlines
  • Computed the plague spread in real-time with SIRD disease spread model using Spark on AWS EMR
  • Implemented a Django server to connect Spark and provide data for the front-end webpage
  • Present the plague spread in read-time with a colored world map, airline flows and infection charts for each country, powered by Bootstrap and D3.js
  • Source code

Real-time Foreground Extraction Method based on Background Learning [C++, Opencv] | 2015.10 ~ 2016.6

  • Published in the 2016 China Conference of Human-Computer Interaction as third author
  • Learned background both from contour (by canny operator) and color (in lab space) features
  • Obtained the contour of foreground by splitting and connecting segments
  • Involved codebook model, Gaussian flitter, contour extraction and filling, edge detection, connected space labeling and other CV technics

Implmentation of Visual–Inertial SLAM System (Final Year Project) [C++, Opencv, OpenGL, Swift, Java] | 2015.10 ~ 2016.6

  • Designed a simultaneous localization and mapping system based on two open sourced algorithm ORB-SLAM and okvis
  • Implemented the relocalization function using the bag-of-words model
  • Refined the graph optimiztion algorithm with an improved marginalization strategy
  • Designed apps on IOS by Swift and android by Java to grab sensor data from cellphones
  • Tested and discussed pros and cons of visual-only and visual-inertial SLAM system

Particle Simulation of DEM-BCRE Model Based on CUDA [C++, CUDA] | 2015.6 ~ 2015.9

  • Particle simulation based on GPU parallel computing,inspired by this paper(Here)
  • Reached nearly real-time rendering with the help of CUDA
  • Optimized the former DEM-BCRE algorithm:
    Used the DEM(Discrete Element Method) to simulate particles on the surface
    Computed internal particles by the BCRE method.
  • Increased the simulation efficiency 140 times compared with the original one implemented in the paper.
  • Built a industrial scene of conveyor transferring sand piles

Game Design: The New Civilization (Project for Design and Development of Game) [Unity3D, C#] | 2015.4 ~ 2015.6

  • A SLG & RTS game, developed by Unity3D and C#
  • Included two phases:the strategic phase and the battle phase
  • In the Strategic phase,the player builds units and deploys them in a 2D UI as a board game.
    In the Battle phase,the player controls his units to beat his enemies in a 3D battle scene.

3D Garden Virtual Walk-Through System (Project for Computer Graphics) [C++, OpenGL] | 2014.11 ~ 2015.1

  • A virtual 3D garden
  • Wandering in the garden
    Growing flowers and change the types (parameters) of flowers
    Simulating the drop of snow
    Collision detection between snowflake and ground or flowers
  • User can save the scene and reload it next time.

JOS-Kernel Implementation (Project for Advanced Operating Systems Implementation) [C] | 2014.9 ~ 2014.12


Skin Quality Testing(Project for Computer Vision and Digital Image Processing) [OpenCV, MATLAB, Qt] | 2014.11 ~ 2014.12

  • A program to judge the quality of the hand skin
  • Processed photos with OpenCV
    Scored the skin based on eigenvalues such as the texture of wrinkles and the color of skin
    Gave the person some advice about skin care

Distributed Information Collection System [Android, Arduino] | 2013.9 ~ 2014.9

  • Distributed information collection in a farmland
  • Sensors in SMCs can collect a variety kind of data.
    SMCs and one Android ending are connected either by Wi-Fi or Bluetooth 4.0.
  • The Android device can display the current environment in the farmland, including temperature, humidity and light intensity.
    If the current environment is harmful to the crop growth, the app can remind the user.

Music Gloves (National Undergraduate IoT Design Competition 2014) [Android, C] | 2014.7 ~ 2014.8

  • Android Part Source Code
  • News Report 1, News Report 2
  • Wearable portable entertainment equipment
  • Installed pressure sensors on the finger parts of gloves, the sensors connected with SCM, transfer pressure information to Android WiFi AP by WiFi Module.
    The cellphone app can get pressure data and simulate the sound of guitar, drum or piano.
    User can save his performance and upload it to the cloud and download it into another Android device.
    User can also cooperate with his friends to play the same song using ONLY ONE phone and a number of gloves like playing a duet.
  • Won National Undergraduate IoT Design Competition 2014 Finals First Prize & Wi-Fi Special Award.
  • Won Shanghai Jiao Tong University Hackthon 2014 Best Creative Award &The Most Popular Works.

XML Data Parsing Tools (Project for Thinking and Approach of Programming) [Python, Qt] | 2014.5 ~ 2014.6

  • Tools to parse XML data
  • Used statistical data from the The World Bank, organized by XML
  • Read date from XML and query some value
  • Generated Statistical graph

Online Bookstore System (Project for Database and Web Application) [Java, JS, SSH, MySQL] | 2014.4 ~ 2014.6

  • Used Java EE, SSH, MySQL, JqueryUI to develop an online Book Store
  • Linked the webpage with a database, responded the operation from front-end
    Realized user register, login, sales amount statistics and administrator operation function, etc.

Data Store and Development of Social Application (Project for Data Structure) [C++] | 2013.11 ~ 2013.12


Game Design:Battle City (Project for Practice of Software Development) [C++,Windows API] | 2013.6 ~ 2013.9

  • A 2D Game similar with the Battle City on the NES
  • Made a simple game engine according to the XNA engine
    Include game loop and game components
  • 3 Stages, 4 Kinds of Tank
    Supported multi-play mode


<<<<<<< HEAD Last Update: 2016/10/15 ======= Last Update: 2015/10/08 >>>>>>> origin/master