“Nonlinear revision control for images” by Chen, Wei and Chang

  • ©Hsiang-Ting Chen, Li-Yi Wei, and Chun-Fa Chang




    Nonlinear revision control for images



    Revision control is a vital component of digital project management and has been widely deployed for text files. Binary files, on the other hand, have received relatively less attention. This can be inconvenient for graphics applications that use a significant amount of binary data, such as images, videos, meshes, and animations. Existing strategies such as storing whole files for individual revisions or simple binary deltas could consume significant storage and obscure vital semantic information. We present a nonlinear revision control system for images, designed with the common digital editing and sketching workflows in mind. We use DAG (directed acyclic graph) as the core structure, with DAG nodes representing editing operations and DAG edges the corresponding spatial, temporal and semantic relationships. We visualize our DAG in RevG (revision graph), which provides not only as a meaningful display of the revision history but also an intuitive interface for common revision control operations such as review, replay, diff, addition, branching, merging, and conflict resolving. Beyond revision control, our system also facilitates artistic creation processes in common image editing and digital painting workflows. We have built a prototype system upon GIMP, an open source image editor, and demonstrate its effectiveness through formative user study and comparisons with alternative revision control systems.


    1. Abram, G. D., and Whitted, T. 1990. Building block shaders. In SIGGRAPH ’90, 283–288. Google Scholar
    2. Bavoil, L., Callahan, S. P., Scheidegger, C. E., Vo, H. T., Crossno, P. J., Silva, C. T., and Freire, J. 2005. Vistrails: Enabling interactive multiple-view visualizations. In Visualization 2005, 135–142.Google Scholar
    3. Bonanni, L., Xiao, X., Hockenberry, M., Subramani, P., Ishii, H., Seracini, M., and Schulze, J. 2009. Wetpaint: scraping through multi-layered images. In CHI ’09, 571–574. Google Scholar
    4. Convard, T., and Bourdot, P. 2004. History based reactive objects for immersive cad. In SM ’04: Symposium on Solid modeling and applications, 291–296. Google ScholarDigital Library
    5. Cook, S. A. 1971. The complexity of theorem-proving procedures. In STOC ’71: Symposium on Theory of computing, 151–158. Google Scholar
    6. Cook, R. L. 1984. Shade trees. In SIGGRAPH ’84, 223–231. Google Scholar
    7. Edwards, W. K., and Mynatt, E. D. 1997. Timewarp: techniques for autonomous collaboration. In CHI ’97, 218–225. Google Scholar
    8. Edwards, W. K., Igarashi, T., LaMarca, A., and Mynatt, E. D. 2000. A temporal model for multi-level undo and redo. In UIST ’00, 31–40. Google ScholarDigital Library
    9. Estublier, J., Leblang, D., Hoek, A. v. d., Conradi, R., Clemm, G., Tichy, W., and Wiborg-Weber, D. 2005. Impact of software engineering research on the practice of software configuration management. ACM Trans. Softw. Eng. Methodol. 14, 4, 383–430. Google ScholarDigital Library
    10. Fairchild, K. M., Poltrock, S. E., and Furnas, G. W. 1999. Readings in information visualization. ch. SemNet: three-dimensional graphic representations of large knowledge bases, 190–206. Google Scholar
    11. Gansner, E. R., Koutsofios, E., North, S. C., and Vo, K.-P. 1993. A technique for drawing directed graphs. IEEE Trans. Softw. Eng. 19, 3, 214–230. Google ScholarDigital Library
    12. Grabler, F., Agrawala, M., Li, W., Dontcheva, M., and Igarashi, T. 2009. Generating photo manipulation tutorials by demonstration. In SIGGRAPH ’09, 66:1–9. Google Scholar
    13. Grossman, T., Matejka, J., and Fitzmaurice, G. 2010. Chronicle: capture, exploration, and playback of document workflow histories. In UIST ’10, 143–152. Google Scholar
    14. Hartmann, B., Yu, L., Allison, A., Yang, Y., and Klemmer, S. R. 2008. Design as exploration: creating interface alternatives through parallel authoring and runtime tuning. In UIST ’08, 91–100. Google Scholar
    15. Heer, J., and Card, S. K. 2004. Doitrees revisited: scalable, space-constrained visualization of hierarchical data. In AVI ’04: Proceedings of the working conference on Advanced visual interfaces, 421–424. Google Scholar
    16. Heer, J., Card, S. K., and Landay, J. A. 2005. prefuse: a toolkit for interactive information visualization. In CHI ’05, 421–430. Google Scholar
    17. Heer, J., Mackinlay, J., Stolte, C., and Agrawala, M. 2008. Graphical histories for visualization: Supporting analysis, communication, and evaluation. IEEE Transactions on Visualization and Computer Graphics 14, 6, 1189–1196. Google ScholarDigital Library
    18. Hoppe, H. 1996. Progressive meshes. In SIGGRAPH ’96, 99–108. Google Scholar
    19. Hunt, J. J., Vo, K.-P., and Tichy, W. F. 1998. Delta algorithms: an empirical analysis. ACM Trans. Softw. Eng. Methodol. 7, 2, 192–214. Google ScholarDigital Library
    20. Itti, L., Koch, C., and Niebur, E. 1998. A model of saliency-based visual attention for rapid scene analysis. IEEE Trans. Pattern Anal. Mach. Intell. 20 (November), 1254–1259. Google ScholarDigital Library
    21. Jackson, D., and Ladd, D. A. 1994. Semantic diff: A tool for summarizing the effects of modifications. In ICSM ’94: Proceedings of the International Conference on Software Maintenance, 243–252. Google ScholarDigital Library
    22. Jacobsen, J., Schlenker, T., and Edwards, L. 2005. Implementing a Digital Asset Management System: For Animation, Computer Games, and Web Development. Focal Press. Google Scholar
    23. Klemmer, S. R., Thomsen, M., Phelps-Goodman, E., Lee, R., and Landay, J. A. 2002. Where do web sites come from?: capturing and interacting with design history. In CHI ’02, 1–8. Google Scholar
    24. Kurihara, K., Vronay, D., and Igarashi, T. 2005. Flexible timeline user interface using constraints. In CHI ’05, 1581–1584. Google Scholar
    25. Kurlander, D. 1993. Chimera: example-based graphical editing. In Watch what I do: programming by demonstration, 271–290. Google Scholar
    26. Lau, T. 2010. Rethinking the systems review process. Commun. ACM 53 (November), 10–11. Google ScholarDigital Library
    27. Levoy, M. 1994. Spreadsheets for images. In SIGGRAPH ’94, 139–146. Google Scholar
    28. Myers, B. A., McDaniel, R. G., Miller, R. C., Ferrency, A. S., Faulring, A., Kyle, B. D., Mickish, A., Klimovitski, A., and Doane, P. 1997. The amulet environment: New models for effective user interface software development. IEEE Transactions on Software Engineering 23, 347–365. Google ScholarDigital Library
    29. Nakamura, T., and Igarashi, T. 2008. An application-independent system for visualizing user operation history. In UIST ’08, 23–32. Google Scholar
    30. Shneiderman, B. 2007. Creativity support tools: accelerating discovery and innovation. Commun. ACM 50 (December), 20–32. Google ScholarDigital Library
    31. Su, S. L., Paris, S., Aliaga, F., Scull, C., Johnson, S., and Durand, F. 2009. Interactive visual histories for vector graphics. Tech. Rep. MIT-CSAIL-TR-2009-031, Massachusetts Institute of Technology, Computer Science and Artificial Intelligence Laboratory, June.Google Scholar
    32. Terry, M., and Mynatt, E. D. 2002. Recognizing creative needs in user interface design. In C&C ’02: Proceedings of the 4th conference on Creativity & cognition, 38–44. Google Scholar
    33. Terry, M., Mynatt, E. D., Nakakoji, K., and Yamamoto, Y. 2004. Variation in element and action: supporting simultaneous development of alternative solutions. In CHI ’04, 711–718. Google Scholar
    34. Yee, H., Pattanaik, S., and Greenberg, D. P. 2001. Spatiotemporal sensitivity and visual attention for efficient rendering of dynamic environments. ACM Trans. Graph. 20, 1, 39–65. Google ScholarDigital Library

ACM Digital Library Publication: