Portfolio

Point-cloud visualization

A one-year apprenticeship project to design a web portal to administrate and visualize point clouds and implement it.

The project consists of a web client written in TypeScript/Vue/Nuxt/three.js/Tailwind and a reactive server developed in vert.x/Kotlin and Quarkus.

Used reactive programming (asynchronous programming) to handle IO-bound tasks in particular resulting from the characteristics of these point clouds. The exposed RESTful APIs were a mixture of reactive ones and blocking ones (dispatched to worker threads).

The web client allows to handle up to millions of points, integrated with an authentication/authorization feature.

The server was quite light-weight and achieved better throughput by using non-blocking and cloud-native tech stacks. The integration and deployment on Docker/Kubernetes was also facilitated.

App view 1

App view 2

Overall design

Reactive architecture


Project Simulatte/Shizuku

A game of type "Karel the robot" for children to learn coding.

See the front-end repo and game server repo for more information as well as project wiki.

UI view of the last web client

Demo Animation


Hackathon project

A simple application to display places of interest on the map, allowing users to search for them, mark some as favorite and leave comments.

The project was written in Flutter. Although it was a 4 persons group, most of coding decisions and work have been achieved by myself. I have also worked to implement a custom search feature with tags as shown in below screen capture.

Achieved in less than 1 week with MVVM design, without previous Flutter/Dart knowledge.

UI and feature preview


Miscellaneous utilities

Tiny KTorrent

A simple BitTorrent client implemented in Kotlin, with a full implementation of Bencode Parser.

See the repo for more info.

convert2bnf

A simple tool to convert an extended grammar (similar to ANTLR format) to standard BNF format. Written with naive parser combinator approach in Haskell.

Repo here.

Data visualization

A simple implementation of sunburst diagram in SwiftUI, only relying on native dependencies.

Here is an example where I used this diagram to visualize job applications (standalone app implemented with SwiftUI and SwiftData)

I started the development since the end of Nov. 2023.

The first version was done in Dec. 2023.

Blog

Maybe I can include this blog in my projects, because not only did I use it for writing down my ideas for 2 years, I have also triggered the code of the Fluid theme to enhance its features.

In fact, Hexo lacks a proper i18n feature. I extended some ejs codes to have a better i18n support.

That's say, I am still stuck for more advanced stuff. Maybe I will come back in the future.

Both my blog and the modified Fluid plugins are versioned by Git.

L10n is postponed due to constraint of the Hexo framework, but I may rework on the UI stuff in next weeks.


Other sections under construction ...

Minecraft

Here are several captures of my Minecraft servers.