Linge Bai  (柏林格)

Linge Bai  (柏林格)

Research Assistant
Geometric Biomedical Computing Group
Department of Computer Science
College of Engineering
Drexel University
3141 Chestnut Street
Philadelphia, PA 19104

Research Office: University Crossings 148
Email: lb353 AT cs DOT drexel DOT edu
Resume

Research                       Publications                       Classes


Research

I am a third year PhD student. My advisor is Dr. David Breen. A brief description of my research can be found: here.

Motivated by the ability of living cells to form into specific shapes and structures, we present a new approach to automated 2D shape composition based on self-organizing primitives whose behaviors are derived via genetic programming. The key concept is to evolve local interaction rules that direct virtual cells to produce a self-organizing behavior that leads to the formation of a macroscopic, user-defined shape. There are two levels of views. At the macroscopic level, a user-specified, pre-defined shape is given as input to the system. The system outputs local interaction rules that direct virtual cells, called Morphogenetic Primitives (MPs), to aggregate into the shape. At the microscopic level, cells take on prescribed behaviors, perform local interactions based only on local information. All cells are identical and do not know their position in the environment, nor the final shape to be formed. The interactions of the primitives are based on chemotaxis-driven aggregation behaviors exhibited by actual living cells. Cells emit a chemical into their environment. Each cell responds to the stimulus by moving in the direction of the gradient of the cumulative chemical field detected at its surface. MPs, though, do not attempt to completely mimic the behavior of real cells. The chemical fields are explicitly defined as mathematical functions and are not necessarily physically accurate. The explicit mathematical form of the chemical field functions are derived via genetic programming (GP), an evolutionary computing process that evolves a population of functions. A fitness measure, at the macroscopic level, based on the shape that emerges from the chemical-field-driven aggregation, determines which functions will be passed along to later generations.


A Comparison between macroscopic goals and MP aggregates.

    

MPs self-organizing into a diamond (with self-alignment) and a gear-like (without self-alignment) shapes.

Here are two movies of MPs self-aligning and self-organizing into macroscopic shapes: diamond movie and gear movie.

(back to top)

Publications

  • Linge Bai and David Breen, ``Calculating Center of Mass in an Unbounded 2D Environment,'' Journal of Graphics Tools, Vol 13. No. 4, pp. 53-60.

  • L. Bai, M. Eyiyurekli and D. Breen, ``An Emergent System for Self-Aligning and Self-Organizing Shape Primitives,'' Proc. Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems, October 2008, pp. 445-454.

  • L. Bai, ``Self-Organizing Primitives for Automated 2D Shape Composition,'' M.S. Thesis, Drexel University, Philadelphia, PA, August 2008.

  • L. Bai, M. Eyiyurekli and D. Breen, ``Automated Shape Composition Based on Cell Biology and Distributed Genetic Programming,'' Proceedings of Genetic and Evolutionary Computing Conference (GECCO) 2008, July 2008, pp. 1179-1186.

  • L. Bai, M. Eyiyurekli and D. Breen, ``Self-Organizing Primitives for Automated Shape Composition,'' Proceedings of Shape Modeling International 2008, June 2008, pp. 147-154.


    Posters

  • Drexel Research Day 2009 poster: Calculating Center of Mass in an Unbounded 2D Environment, April 2009.

  • Drexel Research Day 2008 poster: Self-Organizing Primitives for Automated Shape Composition, April 2008.

    (back to top)


    Initial Image

      

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0,
    Diffusion Function = Divide(((Log(Divide(d,t))-Divide((0.924414),theta))-(0.363563)),Divide(d,t)), fitness = 0.659776

         

    Cell Radius = 4.5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = Divide((Log(Divide(d,t))-Log(cos(theta))),Divide(d,t)), fitness = 0.717403

         

    Cell Radius = 5, Number of Cells = 500, World size = 550x550, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = exp(cos(Log(((0.275695)+exp((-0.0894350))+(d*d))))), similarity = 0.555978

         

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    hourglass1717.png: (Log(d)+cos(Divide((t*theta),Divide((t+Log(Divide(t,Log(d)))),(-0.356662))))), fitness = 0.36007(before rotate), 0.436527(after rotate)
    hourglass957.png: Divide(t,Divide(Divide(t,Log(d)),Log((d-Log(((theta*sin(t))*(exp(sin((d-Divide((0.0150837),theta))))+Divide((theta*t),exp(Divide(Log(d),exp((-0.109072)))))))))))), fintess = 0.436527(before rotate), (after rotate)

               

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    1968.png: Log(cos(theta))+d, fitness = 0.608689
    968.png:(Log(Log(t))+d), fitness = 0.342007
    1209.png: Log((d*exp(d))), fintess = 0.560553

                  

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = (d-((-0.183312)+cos(sin(Divide(t,(d+(d-((-0.183312)+exp(theta))))))))), fitness = 0.594603

         

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = Divide(Log(((0.308399)-theta)),exp(Log(((theta-(exp(theta)*Divide(theta,d)))+d))))

         

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = Divide(Log((Log((sin(t)+cos(theta)))*d)),exp((sin(theta)+(Log(d)+theta)))), fitness = 0.491477

         

    Cell Radius = 5, Number of Cells = 500, World size = 500x500, RMAX = 200.0, CMAX = 180.0, lambda velocity = 1.0
    Diffusion Function = exp(exp(theta)), fitness = 0.435082

         
    More shapes can be found: here

    Classes

    Here are some homework images of classes I took:
  • CS636 Advanced Rendering Techniques:
  • hw1 (basics)   
    hw2 (color and light)   
    hw3 (acceleration)   
    hw4 (anti-aliasing)   
    hw5 (shadows and reflection)   
    hw6 (refraction)

  • CS680 Introduction to Computer Vision:
  • project 1 (homography)   
    project 2 (panorama)   
    project 3 (photometric stereo)   

  • CS511 Robot Lab
  • Path planning with two different kinds of robots:
    Robot 1:                       
    Left: Path planned with Minkowski sum in an environment with obstacles                                    Right: Robot following the planned path (animated gif file)


    Robot 2:                       
    Left: Path planned with Minkowski sum in an environment with obstacles                                    Right: Robot following the planned path (animated gif file)

    (back to top)