- 🔭 I'm a front-end engineer in a startup and previously worked at AntV.
- 📖 I'm writing a series of tutorials on infinite canvas: https://infinitecanvas.cc/.
- 🎨 I'm interested in rendering technology:
- @antv/g - A flexible rendering engine for visualization adapting all underlying rendering APIs (Canvas2D / SVG / WebGL / WebGPU / CanvasKit / Node.js) on the web side. It supports for upper tier products such as G2, G6 and L7.
- @antv/g-device-api - A hardware adaptation layer using WebGL & WebGPU underneath.
- @antv/a8 - An audio visualizer including effects such as GPU particles.
- @antv/layout-gpu - Speed up graph algorithm with GPGPU(WebGL & WebGPU underneath) How I made it
- renderer - A toy renderer inspired by bevy. Based on ECS architectural pattern and WebGPU.
- Compute Toys - A collection of WGSL compute shaders.
- 🦀 I've also been learning Rust lately:
- @antv/layout-wasm - A WASM binding of
@antv/layout-rust
using Rust implementing some graph layout algorithm like Force. We also used wasm-bindgen-rayon to implement data parallelism with WebWorkers. How I made it - Use naga and its WASM binding for transpiling GLSL to WGSL.
- @antv/layout-wasm - A WASM binding of
- 🌱 Other web techniques like WebCodecs, WebAudioAPI and WebNN:
- player - A soccer video analyzer inspired by Tracking Football Players with YOLOv5 + ByteTrack using some web techniques like WebCodecs / WebAudioAPI / WebGPU.
- 📫 How to reach me:
CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 01:17:47 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"aec087bc1e3ee875e63a253ef4529773"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=1kxTQ%2B1R2KN5Spm3QPAsAYv6nZxBUipYaeMuAS1nmIQ3y5V8Ruhs1RgIVTW9XDTaVGS3lzTLXxBEqgYeRY7%2Fg6dqEm3xKRsX53Mqtb0c4uDWdvNHvwt8poTExTqVujhlmunT6hqW%2FAWsQwOZXU4zhLvH2eimslJ0BBEmBwewgxbsIoMHysffAXvv7Z1ZC5RzCEHTIysK%2BWGoJ%2BgtkC6LYdf0HZjPtWBYYcq%2Fm4CSth0CG5K97iF7RkNITC7yQbjkhe1%2B28uO2jThOp8hm7bwlg%3D%3D--C6IEoZdnmK3m5yXK--pE7gphY3qp0c2RZ3WmVbVQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.935476702.1753319867; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 01:17:47 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 01:17:47 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: C544:26221E:11B6E7B:156CACE:688189BB
xiaoiver · GitHub
Skip to content
Navigation Menu
{{ message }}
🎯
Focusing
Pinned Loading
-
infinite-canvas-tutorial
infinite-canvas-tutorial PublicA tutorial on infinite canvas
-
-
-
lavas-project/lavas
lavas-project/lavas Public基于 Vue 的 PWA 解决方案,帮助开发者快速搭建 PWA 应用,解决接入 PWA 的各种问题
-
lavas-project/vue-skeleton-webpack-plugin
lavas-project/vue-skeleton-webpack-plugin PublicLavas webpack plugin: skeleton solution for PWA webshell
Something went wrong, please refresh the page to try again.
If the problem persists, check the GitHub status page or contact support.
If the problem persists, check the GitHub status page or contact support.
You can’t perform that action at this time.