Visual Computing

University of Konstanz
Computer Graphics Forum

4D Reconstruction of Blooming Flowers

Q. Zheng, X. Fan, M. Gong, A. Sharf, O. Deussen, H. Huang
Teaser of 4D Reconstruction of Blooming Flowers


Paper (.pdf, 12.0MB)


Flower blooming is a beautiful phenomenon in nature as flowers open in an intricate and complex manner whereas petals bend, stretch and twist under various deformations. Flower petals are typically thin structures arranged in tight configurations with heavy self-occlusions. Thus, capturing and reconstructing spatially and temporally coherent sequences of blooming flowers is highly challenging. Early in the process only exterior petals are visible and thus interior parts will be completely missing in the captured data. Utilizing commercially available 3D scanners, we capture the visible parts of blooming flowers into a sequence of 3D point clouds. We reconstruct the flower geometry and deformation over time using a template-based dynamic tracking algorithm. To track and model interior petals hidden in early stages of the blooming process, we employ an adaptively constrained optimization. Flower characteristics are exploited to track petals both forward and backward in time. Our methods allow us to faithfully reconstruct the flower blooming process of different species. In addition, we provide comparisons with state-of-the-art physical simulation-based approaches and evaluate our approach by using photos of captured real flowers.


  author    = {Q. Zheng, X. Fan, M. Gong, A. Sharf, O. Deussen, H. Huang},
  doi       = {10.1111/cgf.12989},
  issn      = {1467-8659},
  journal   = {Computer Graphics Forum},
  keywords  = {geometric modelling, modelling, behavioural animation, animation, point-based animation, I.3.5 [Computer Graphics]: Computational Geometry and Object Modelling Modelling; I.3.7 [Computer Graphics]: Three-Dimensional Graphics and Realism Animation},
  number    = {6},
  pages     = {405--417},
  title     = {4D Reconstruction of Blooming Flowers},
  url       = {},
  volume    = {36},
  year      = {2016}