- 🎓 I’m currently studying Computer Science at university
- 🔭 You'll find some of my personal programming projects here
- 👨💻 My favourite language is C++ and I've had the most fun with it
- 💭 Enjoy games programming, animation and computer graphics (especially rendering :-D)
- 🌱 I am interested in the combination of computer graphics and deep learning!
- 📫 How to reach me: [email protected] / My personal website / Linkedin
-
Msc Computer Science at University of Birmingham (2022-2023)
Computer Graphics, Rendering; Full Stack Software Development; Artificial Intelligence -
Bsc Architecture at Shenzhen University (2017-2022)
Fluid simulation; Procedural generation; Machine Learning and Deep Learning -
Algorithm intern at Xkool Technology(2021-2022)
Secondary development of Rhino and Revit software; Geometric Algorithm Development -
Graphics Engineer intern at OPPO(2023-2023)
Vulkan, OpenGL, Games Development, GPU performance analysis and load reduction
-
01 Kaggle Shopee Price Matching Multimodal Project (2021.3-2021.5)
Repository: Solution for shopee-product-matching
Competition Website: Kaggle Shopee Price Matching Multimodal Project
Dataset: 34250(Trianing set)+7000(Test set) products in Shopee with image / image_phash / title / id / label
Description: Developed a model recommend similar products to customers through image and text model. (CV+NLP)Used multiple image and text models to train a significant amount of data. And a voting method for Post-processing. -
02 UrbanGAN: A GAN based model for predicting the popularity of second-hand housing (2021.8-2021.10)
Repository: UrbanGAN
Dataset: POI Data in Shanghai from Amap.api / 6000 Second-hand-houses data from Lianjia.com / Graphs Data from ArcGis
Description: A summer project at TongJi University supervised by Professor Hao Zheng. Using the API of Amap to collect POI (Points of interests) data of Shanghai, including school, hospital, underground station, bus station ,business and shopping center's location. And the popularity data of second-hand houses from Lianjia website. Trying to use GAN to train an image-to-image mapping to learn the impact of POI data on the popularity of second-hand housing. -
03 Geometric algorithm: A parameterization model and clusting algorithm for complex facade surfaces (2021.11-2022.1)
Repository: clusting algorithm for complex facade surfaces
Data: The mesh information (vertex position and normal) of complex surfaces after UV mapping
Description: The construction of complex surface of buildings always needs to provide different molds for each panel. I hope to find the optimal pannel clusting through K-means clustering, so the same mold can correspond to different pannels, save costs in the actual construction process. Before clusting, I constructed a parameterized model for panels, using 5 parameters to difine the size and curvature of each pannel. I divied all panels into three categories: flat, single curved surface, and hyperbilic surface in first round. Then, clusting was performed within each catagory. -
04 HUAWEI Cloud AI Competition: Recording disappearing cultural heritage using YOLO_v3 (2020.10-2020.12)
Repository: YOLOv3-Shekou-FishingMarket
Data: Video in Shekou Fishing Market
Description: Shekou Fishing Market will be demolished by the end of November 2020. With the HiLens Kit by HUAWEI Cloud, we built an installation in the sea world culture and arts center(SWCAC) to continue Shekou people's memory of Shekou fishing Market. We collect video in market using HiLens Kit's camera, and use YOLO_v3 algorithm to carry out human shape detextion in real time. Through stepping motors and other devices, we convey the same sense of crowding to exhibitors as in Shekou market. And the sense of crowding will also be preserved in the form of data.
Videos with Computer Graphics Projects
-
Repository: Piccolo Game Engine
Course Website: Games104
Description: I'm following a course (Games104)building a mini-game engine, from the engine layers to the reflection system, rendering system, and collision system. This is very challenging and long work, but I believe it will give me a deeper understanding of the game engine. rom the Core engine layer, such as the rendering engine, physics engine, audio engine, and input system, These systems handle low-level tasks such as rendering graphics, simulating physics, playing sounds, and handling user input. -
Repository: Animation
Competition Website: Taichi Pose in Animation
Top100 Works Top100 Moving Meditations Works
Description: I took part in the "Moving Meditations" CG animation challenge on YouTube in 2022. I modeled my creation using Maya, then set up the environment and camera in Unreal Engine. I touched up the object's UV and material using 3ds Maxs and brought my character to life by rigging its bones in Blender. Finally, I added some effects like fog, clouds, and a rainy effect using bluePrint in Unreal Engine before rendering it all into a sequence. -
Repository: TinyRenderer
Course Website (Wiki): TinyRenderer Wiki
Description: Using the OpenGL Rendering pipeline. Started with the most basic point-to-line algorithm and added triangles surfaces, materials, shadows, and normals. And explore the most efficient solution at each step.Render the vertex data to the screen through the rendering pipeline. -
Repository: Ray Tracing
Course Website (Wiki): Ray Tracing in one weekend
Description: Ray tracing is a technique used in computer graphics to generate highly realistic images by simulating the behavior of light in a scene. The technique involves tracing the path of light rays, and calculating how they are reflected, or absorbed by different materials.In a typical ray tracing algorithm, a virtual camera is placed in the scene, and rays are cast from the camera into the scene to see what objects and surfaces are visible. Followed the wiki, I build a RayTracing from the most basic intersection algorithm of rays and geometric objects using Monte Carlo Methods. -
Repository: Unity Shader
Description: Unity allows developers to control how light interacts with objects, how textures are applied to surfaces, and how materials behave. Shaders can be customized and combined to create unique visual effects and styles in a game or application. We can Implement smoke effect and transparency by customizing the vertex shader and fragment shader in the rendering pipeline throung Unity shader, to achieve the desired effect. I programme lighting equations and sample colors on texture mapping to implement rendering algorithms for both realism and non-realism effects. -
Repository: Realtime Rendering
Course Website: Games202 by ucsb
Description: In the Online courses by UC Santa Barbara, I have achieved many real-time rendering algorithms in the framework of WebGL. For example here is a PCSS Soft shadow, It works by taking into account the size and shape of the light source, as well as the distance and angle between the light source and the object casting the shadow, to create soft and realistic shadow edges. -
Repository: AR Application(IOS)
On Android, we have the option to choose between ARCore and Vuforia as our AR development platforms. Both platforms support device tracking, plane detection, face tracking, and 2D/3D object tracking. However, since ARCore does not support every Android device yet, I chose to use Vuforia for my project on Android. I deployed a 2D image tracking feature and added an animation of a model to the target image. On IOS, I choose AR Foundation. It can support both ARKit and ARCore. AR Foundation has many Subsystems, such as XRSession, XRCamera, and Also XRImage. I deployed the most basic Devices Tracking on my ipad and can be found that if we need a better positioning effect, we still need to add 2D/3D Tracking.
Framework: Unity AR Foundation
Description: I was really impressed by the amazing effect of Microsoft Mesh and HoloLens. Unfortunately, I don't have a HoloLens yet, so I couldn't develop interactive mixed reality yet. Instead,I tried to deploy the AR model separately on Android and iOS. -
Repository: Pacman
Description: I have developed a PacMan games using the SFML library. The game is set in maze where the player controls PacMan to eat all the pellets while avoiding the ghosts. The game features classic gameplay mechanics, such as power pellets that allow PacMan to eat the ghosts and bonus fruits tha appear in the maze. The graphics and sounds are designed to recreate the nostalgia of the original game, making it a fun and engaging experience for player. -
Repository: 01 BlockBreaker 02 SkywardMuffin 03 SpaceshipBattle
Description: I've created a few small games using Unreal Engine, relying on its blueprint system for development. This includes designing the interface UI, working with materials, rigging characters with bones, creating animations, and adding sound effects, and particle systems.
-
Repository: Topology Skyscraper
Framework: Beso Algorithm
Description: BESO can add elements in the area of material "high efficiency" (such as high material stress). This ability to add elements makes the shape optimization ability of the progressive optimization method stronger, easier to reduce the maximum stress and stress concentration, makes the structural stress distribution uniform, and finds a better force transmission path. It can also delete inefficient units in the model. We use the stiffness optimization mathematical model to illustrate the basic principle of BESO.I use the CFD to calculate the Load parameters and use BESO algorithms to calculate the structure.