All-Post

BioDigital Summer Intern Review 1: Camera tricks: Mouse Orbiting issue

Aug 26, 2016

Continuing our last blog, we are looking at some other issue of camera in WebGL apps with a display stage style scene.

Another common camera issue in these apps is that after we pan the camera, orbiting becames kind of weird. This is because we orbit camera around its look at position, and now look at position is not centered at the object anymore. Lacking of other referencing scene objects (like terrain, walls), the orbiting seems to us like floating in the air doesn’t follow control nicely.

BioDigital Summer Intern Review 1: Camera tricks: Cylindrical coordinates

Aug 26, 2016

I’ve literally spent my whole summer vacation at BioDigital for a complete 3-month internship. At this time I would like to make a review and introduce some tricks that may be generally useful in WebGL app development. In this first review, I will introduce some tricks that can help make the camera behaves more user-friendly for a display-stage style 3D app.

Minimal glTF Loader

Jun 20, 2016

I’ve been working on this minimal glTF loader for the past week. I’ve done the first pass of Geometry, materials, shaders, and texture loading. A WebGL 1 and WebGL 2 test viewer come together with this repo, which are going to be integrated in the loader itself.

VSCode Typings and Intellisense: Dummy Learning VS-Code 1

Jun 20, 2016

Updated on Jun 20 2016 for 1.0 typings and 1.x.x VS Code

I try to bring code intellisense to visual studio code for three.js today. The process is also suitable for other packages.

VSCode Useful shortcuts and tricks: Dummy Learning VS-Code 0

Jun 20, 2016

As a dumb programmer, I am always hoping that I can become one of those geeky and experienced programmers who type rapidly and barely leave their hands from the keyboard when typing in a text editor. Learning more about a text editor sometimes save you a great ammount of time. Although there’s always a way to detailed documents, I would still appreciate a simple straightforward chi-chi for tricks of using text editors. It doesn’t have to be too advanced which including every trivial tricks or introduce all sorts of customizable plugins, but can still be very useful especially for a newbie to start rolling with the text editors.

That’s why I have this blog series about tricks of using text editors, VS Code as the selection, for it is totally free and doesn’t need many plugins to start with. JavaScript will be the main language that we are writing.

This first blog will start with some very basic but useful tricks.

Nyc Webgl Developer Meetup

Apr 26, 2016

Thanks to Tarek’s invitation, we came to the NYC WebGL developer meetup at BioDigital to talk about our WebGL 2 Samples Pack.

People here are not like those in Khronos meetup in SF. Many of them are not advanced WebGL programmers but treating 3D programming as a hobby.

The Invincible Three

Apr 3, 2016

PennPlay 2016 with Kai and Ryan! A danmuku game with meme style comics and control Geroge Washington to fight against Soviet, with Time scale and bullet rewind.

Evolution

Apr 3, 2016

PennPlay 2016 with Kai and Ryan! An html + js lightweight strategy game (an experiement -_-) inspired by Conway’s Game of Life. Based on canvaslife - Julian Pulgarin. Players can evolve their species by upgrading them with claws, stings, fat, poison, etc… by spending gene mutation. Vairous attributes will affect the reproduce, live, competition and prey. You can develop your species in the track of a herbivore, a carnivore, or plants that live on self generated energy!

Webgl2 Khronos Talk

Mar 28, 2016

I gave a talk on our WebGL 2 samples pack at Khronos GDC event in San Fransico with Trung.

I met Ken, Brandon, Mo and a lot of senior engineers from the industry who have helped our project. Also I met some great Penn CGGT alumini.

It was a great week at GDC.

Drag n Sword U3D Game

Mar 3, 2016

Drag n Sword is a Chinese martial fighting game with non standard control scheme in Unity3D. The most attracting feature is that the player control how its character swing and stab sword by click and drag mouse to draw certain pattern.
Thanks great teammates Liang Peng and Zimeng Yang!

WebGL 2 Samples Pack

Mar 2, 2016

Short and easy to understand samples demonstrating WebGL 2 features. My first entry-level open source project.
Thanks Trung Le for working together!
Thanks Patrick Cozzi for advising!

Multiple Fbo Render Issue

Feb 3, 2016

I met this problem when writing glsl_centroid sample in WebGL2 Samples Pack.

TODO

Unified Particle Simulation in CUDA

Dec 7, 2015

A real­time particle simulation engine implemented with CUDA. The engine includes basic particle sampling, rigid body and fluid (liquid) interaction simulations.
Thanks great teammates Stonebird (Tongbo Sui)!

WebGL Deferred Shader

Oct 20, 2015

Projects from CIS 565 GPU Programming and Architecture at UPenn. Thanks Patrick Cozzi and Kai Ninomiya for having this awesome course!

CUDA Rasterizer

Oct 10, 2015

Projects from CIS 565 GPU Programming and Architecture at UPenn. Thanks Patrick Cozzi and Kai Ninomiya for having this awesome course!

CUDA Path Tracer

Sep 29, 2015

Projects from CIS 565 GPU Programming and Architecture at UPenn. Thanks Patrick Cozzi and Kai Ninomiya for having this awesome course!

MechEmpire-Clash at PennApps XII

Sep 4, 2015

MechEmpire-Clash is a multiplayer 3d shooting game, players can join the game and control their robots either with their mobile device (with support of EA pathfinder API), or with classical mouse and keyboard.
The ideas, models, and game background are adapted from MechEmpire. Basically I want to make this game an extension of MechEmpire Series, which can include AI agents programmed by contestants in the future. I hope this game together with MechEmpire can be continuously developed and help people learn programming happily.
winner of EA Pathfinders: Players’ Choice Award at PennApps XII.

MechEmpire 机甲帝国

Jun 8, 2015

MechEmpire is an AI agent programming game, consisting of a Game Core, 2D(Flash)/3D(Unity) Game Renderers, a Website with an Arena System, and Models and Designs of the mechs. Comparing to other programming games, it focuses more on playability and game experience. A large variety of weapons and engines are available for different types of tatics, which brings a lot of fun to the programming game.

I created MechEmpire from scratch in 2013. So far I have met some great teammates and we have succeed holding two Competition Seasons, attracting students from Southeast University, UCLA, The University of Electronic Science and Technology of China, and etc. MechEmpire has also been working as a registered SRTP competition in SEU. It is the greatest time of my undergraduates working with these guys.

Image Manipulation Stuff

Dec 19, 2014

Multi-resolution blending, Seam Carving, Face morphing, Auto stitching… Projects from CS 194 Image Manipulation and Computational Photography at UC Berkeley.

Graphics Related

Dec 18, 2014

Ray Tracer, Tessellation, MiniGL, IK… Projects from CS 184 Foundations of Computer Graphics at UC Berkeley. Thanks James O’Brien for writing me a recommendation letter.

100 Floors AIR Game

Feb 20, 2013

An adobe AIR web and mobile game. The interesting part is that I designed a variety of items and add a monster chasing mode to this classic Man Down games.

Heroes Gathering

Aug 20, 2012

Hero Gathering (英雄集结号) is a project for the programming and algorithm class when I was freshman. Because of this, to bring in as many technical elements as possible regardless if it’s suitable (ODBC, Win32, flash, …), it turns to have a really wired structure and very hard to distribute.
The game idea itself is not bad though. Players gather heroes like pokemons, and the turnbased battle has a special system similar to rock-paper-scissor which makes it possible for zeros beat heroes. Even in 2015, I still spent a whole day just playing this game -_-!.

108 Heroes

Jan 30, 2012

108 Heroes (水浒英雄传) is an Adobe Flash ARPG game I made when I was a freshman. The code is in outdated AS 2, and is very ugly. But the game itself is fun. As a fan of Water Margin (水浒传), I brought all the 108 heroes into the game. Each of them has an appearance(only finish drawing about 50% of them, haha) and a different weapon. Players will recruit other heroes, buy gangs and horses, and fight with other factions to capture more mountain camps.

The Invincible Three

Apr 3, 2016

PennPlay 2016 with Kai and Ryan! A danmuku game with meme style comics and control Geroge Washington to fight against Soviet, with Time scale and bullet rewind.

Evolution

Apr 3, 2016

PennPlay 2016 with Kai and Ryan! An html + js lightweight strategy game (an experiement -_-) inspired by Conway’s Game of Life. Based on canvaslife - Julian Pulgarin. Players can evolve their species by upgrading them with claws, stings, fat, poison, etc… by spending gene mutation. Vairous attributes will affect the reproduce, live, competition and prey. You can develop your species in the track of a herbivore, a carnivore, or plants that live on self generated energy!

Drag n Sword U3D Game

Mar 3, 2016

Drag n Sword is a Chinese martial fighting game with non standard control scheme in Unity3D. The most attracting feature is that the player control how its character swing and stab sword by click and drag mouse to draw certain pattern.
Thanks great teammates Liang Peng and Zimeng Yang!

MechEmpire-Clash at PennApps XII

Sep 4, 2015

MechEmpire-Clash is a multiplayer 3d shooting game, players can join the game and control their robots either with their mobile device (with support of EA pathfinder API), or with classical mouse and keyboard.
The ideas, models, and game background are adapted from MechEmpire. Basically I want to make this game an extension of MechEmpire Series, which can include AI agents programmed by contestants in the future. I hope this game together with MechEmpire can be continuously developed and help people learn programming happily.
winner of EA Pathfinders: Players’ Choice Award at PennApps XII.

MechEmpire 机甲帝国

Jun 8, 2015

MechEmpire is an AI agent programming game, consisting of a Game Core, 2D(Flash)/3D(Unity) Game Renderers, a Website with an Arena System, and Models and Designs of the mechs. Comparing to other programming games, it focuses more on playability and game experience. A large variety of weapons and engines are available for different types of tatics, which brings a lot of fun to the programming game.

I created MechEmpire from scratch in 2013. So far I have met some great teammates and we have succeed holding two Competition Seasons, attracting students from Southeast University, UCLA, The University of Electronic Science and Technology of China, and etc. MechEmpire has also been working as a registered SRTP competition in SEU. It is the greatest time of my undergraduates working with these guys.

100 Floors AIR Game

Feb 20, 2013

An adobe AIR web and mobile game. The interesting part is that I designed a variety of items and add a monster chasing mode to this classic Man Down games.

Heroes Gathering

Aug 20, 2012

Hero Gathering (英雄集结号) is a project for the programming and algorithm class when I was freshman. Because of this, to bring in as many technical elements as possible regardless if it’s suitable (ODBC, Win32, flash, …), it turns to have a really wired structure and very hard to distribute.
The game idea itself is not bad though. Players gather heroes like pokemons, and the turnbased battle has a special system similar to rock-paper-scissor which makes it possible for zeros beat heroes. Even in 2015, I still spent a whole day just playing this game -_-!.

108 Heroes

Jan 30, 2012

108 Heroes (水浒英雄传) is an Adobe Flash ARPG game I made when I was a freshman. The code is in outdated AS 2, and is very ugly. But the game itself is fun. As a fan of Water Margin (水浒传), I brought all the 108 heroes into the game. Each of them has an appearance(only finish drawing about 50% of them, haha) and a different weapon. Players will recruit other heroes, buy gangs and horses, and fight with other factions to capture more mountain camps.

BioDigital Summer Intern Review 1: Camera tricks: Mouse Orbiting issue

Aug 26, 2016

Continuing our last blog, we are looking at some other issue of camera in WebGL apps with a display stage style scene.

Another common camera issue in these apps is that after we pan the camera, orbiting becames kind of weird. This is because we orbit camera around its look at position, and now look at position is not centered at the object anymore. Lacking of other referencing scene objects (like terrain, walls), the orbiting seems to us like floating in the air doesn’t follow control nicely.

BioDigital Summer Intern Review 1: Camera tricks: Cylindrical coordinates

Aug 26, 2016

I’ve literally spent my whole summer vacation at BioDigital for a complete 3-month internship. At this time I would like to make a review and introduce some tricks that may be generally useful in WebGL app development. In this first review, I will introduce some tricks that can help make the camera behaves more user-friendly for a display-stage style 3D app.

WebGL 2 Samples Pack

Mar 2, 2016

Short and easy to understand samples demonstrating WebGL 2 features. My first entry-level open source project.
Thanks Trung Le for working together!
Thanks Patrick Cozzi for advising!

WebGL Deferred Shader

Oct 20, 2015

Projects from CIS 565 GPU Programming and Architecture at UPenn. Thanks Patrick Cozzi and Kai Ninomiya for having this awesome course!

VSCode Typings and Intellisense: Dummy Learning VS-Code 1

Jun 20, 2016

Updated on Jun 20 2016 for 1.0 typings and 1.x.x VS Code

I try to bring code intellisense to visual studio code for three.js today. The process is also suitable for other packages.

VSCode Useful shortcuts and tricks: Dummy Learning VS-Code 0

Jun 20, 2016

As a dumb programmer, I am always hoping that I can become one of those geeky and experienced programmers who type rapidly and barely leave their hands from the keyboard when typing in a text editor. Learning more about a text editor sometimes save you a great ammount of time. Although there’s always a way to detailed documents, I would still appreciate a simple straightforward chi-chi for tricks of using text editors. It doesn’t have to be too advanced which including every trivial tricks or introduce all sorts of customizable plugins, but can still be very useful especially for a newbie to start rolling with the text editors.

That’s why I have this blog series about tricks of using text editors, VS Code as the selection, for it is totally free and doesn’t need many plugins to start with. JavaScript will be the main language that we are writing.

This first blog will start with some very basic but useful tricks.