Call for Paper - January 2023 Edition
IJCA solicits original research papers for the January 2023 Edition. Last date of manuscript submission is December 20, 2022. Read More

ZLang: A Scripting Language for Digital Content Creation Applications

International Journal of Computer Applications
© 2012 by IJCA Journal
Volume 50 - Number 5
Year of Publication: 2012
Mohamed Yousef
Ahmed Hashem
Hassan Saad
Khaled Hussain

Mohamed Yousef, Ahmed Hashem, Hassan Saad and Khaled Hussain. Article: ZLang: A Scripting Language for Digital Content Creation Applications. International Journal of Computer Applications 50(5):32-43, July 2012. Full text available. BibTeX

	author = {Mohamed Yousef and Ahmed Hashem and Hassan Saad and Khaled Hussain},
	title = {Article: ZLang: A Scripting Language for Digital Content Creation Applications},
	journal = {International Journal of Computer Applications},
	year = {2012},
	volume = {50},
	number = {5},
	pages = {32-43},
	month = {July},
	note = {Full text available}


Digital Content Creation (DCC) Applications (e. g. Blender, Autodesk 3ds Max) have long been used for the creation and editing of digital content (e. g. Images, videos). Due to current advancement in the field, the need for controlled automated work forced these applications to add support for scripting languages that gave power to artists without diving into many details. With time these languages developed into more mature languages and were used for more complex tasks (driving physics simulations, controlling particle systems, or even game engines). For long, these languages have been interpreted, embedded within the applications, lagging the UIs or incomparable with real programming languages (regarding Completeness, Expressiveness, Extensibility and Abstractions). In this paper, we present a high level scripting language (Zlang) and a DCC Engine that addresses those problems. The language can be interpreted, compiled, extended in C/C++ and has a number of constructs, and optimizations dedicated to DCC domain. The engine provides geometric primitives, mesh modifiers, key-framed animation and Physics Simulations (Rigid Body, and Cloth Simulations). The engine is designed and implemented as a library so it can be used alone or embedded.


  • J. K. Hahn, Realistic animation of rigid bodies, SIGGRAPH Comput. Graph. 22 (1988) 299-308.
  • W. T. Reeves, Particle systems a technique for modeling a class of fuzzy objects, ACM Trans. Graph. 2 (1983) 91-108.
  • J. K. Ousterhout, Scripting: Higher-level programming for the 21st century, Computer 31 (1998) 23-30.
  • CGWiki, Maxscript (Apr. 2008). http://wiki. cgsociety. org/index. php/MAXScript
  • M. R. Wilkins, C. Kazmier, MEL Scripting for Maya Animators, Second Edition (The Morgan Kaufmann Series in Computer Graphics), Morgan Kaufmann Publishers Inc. , San Francisco, CA, USA, 2005.
  • M. Tigges, B. Wyvill, Python for scene and model description for computer graphics, Proc. IPC 2000.
  • C. W. Reynolds, Computer animation with scripts and actors, in: Proceedings of the 9th annual conference on Computer graphics and interactive techniques SIGGRAPH '82, ACM, New York, NY, USA, 1982, pp. 289-296.
  • S. F. May, W. E. Carlson, F. Phillips, F. Scheepers, Al: a language for procedural modeling and animation, Technical report OSU-ACCAD-12/96-TR5, The Ohio State University CSIR (1996).
  • Nvidia, Physx (2011). http://www. geforce. com/Hardware/Technologies/physx
  • Autodesk, Maya (2011). http://usa. autodesk. com/maya/
  • Autodesk, 3ds max (2011). http://usa. autodesk. com/3ds-max/
  • M. Lutz, Programming python, O'Reilly & Associates, Inc. , Sebastopol, CA, USA, 1996.
  • Blender Foundation, Blender (2011). http://www. blender. org
  • Aristid, Lindenmayer, Mathematical models for cellular interactions in development ii. simple and branching filaments with two-sided inputs, Journal of Theoretical Biology 18 (3) (1968) 300 - 315.
  • P. Prusinkiewicz, A. Lindenmayer, The algorithmic beauty of plants, Springer-Verlag New York, Inc. , New York, NY, USA, 1996.
  • Y. I. H. Parish, P. Mu:ller, Procedural modeling of cities, in: Proceedings of the 28th annual conference on Computer graphics and interactive techniques, SIGGRAPH '01, ACM, New York, NY, USA, 2001, pp. 301-308.
  • G. Stiny, Pictorial and Formal Aspects of Shape and Shape Grammars, BirkhauserVerlag, Basel, Switzerland, 1975.
  • P. Wonka, M. Wimmer, F. Sillion, W. Ribarsky, Instant architecture, ACM Trans. Graph. 22 (2003) 669-677.
  • P. Mu:ller, P. Wonka, S. Haegler, A. Ulmer, L. Van Gool, Procedural modeling of buildings, ACM Trans. Graph. 25 (2006) 614-623.
  • J. M. Snyder, Generative modeling for computer graphics and CAD: symbolic shape design using interval analysis, Academic Press Professional, Inc. , San Diego, CA, USA, 1992.
  • S. Havemann, D. W. Fellner, Generative mesh modeling, Ph. D. thesis (2005).
  • R. Cartwright, V. Adzhiev, A. A. Pasko, Y. Goto, T. L. Kunii, Web-based shape modeling with hyperfun, IEEE Comput. Graph. Appl. 25 (2005) 60-69.
  • B. Cutler, J. Dorsey, L. McMillan, M. Mu:ller, R. Jagnow, A procedural approach to authoring solid models, ACM Trans. Graph. 21 (2002) 302-311.
  • W. T. Reeves, E. F. Ostby, S. J. Leffler, The menvmodelling and animation environment, The Journal of Visualization and Computer Animation 1 (1) (1990) 33-40.
  • S. Upstill, RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics, Addison-Wesley Longman Publishing Co. , Inc. , Boston, MA, USA, 1989.
  • K. Perlin, E. M. Hoffert, Hypertexture, SIGGRAPH Comput. Graph. 23 (1989) 253-262.
  • L. Velho, K. Perlin, L. Ying, H. Biermann, Procedural shape synthesis on subdivision surfaces, in: Proceedings of the XIV Brazilian Symposium on Computer Graphics and Image Processing, SIBGRAPI '01, IEEE Computer Society, Washington, DC, USA, 2001, pp. 146-153.
  • F. K. Musgrave, C. E. Kolb, R. S. Mace, The synthesis and rendering of eroded fractal terrains, in: Proceedings of the 16th annual conference on Computer graphics and interactive techniques, SIGGRAPH '89, ACM, New York, NY, USA, 1989, pp. 41-50.
  • R. Szeliski, D. Tonnesen, Surface modeling with oriented particle systems, SIGGRAPH Comput. Graph. 26 (1992) 185-194.
  • T. Lewis, M. W. Jones, A system for the non-linear modelling of deformable procedural shapes, The Journal of WSCG 12 (2) (2004) 253-260.
  • K. Perlin, A. Goldberg, Improv: a system for scripting interactive actors in virtual worlds, in: Proceedings of the 23rd annual conference on Computer graphics and interactive techniques, SIGGRAPH '96, ACM, New York, NY, USA, 1996, pp. 205-216.
  • K. Perlin, Real time responsive animation with personality, IEEE Transactions on Visualization and Computer Graphics 1 (1995) 5-15.
  • C. Elliott, Modeling interactive 3d and multimedia animation with an embedded language, in: Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997, USENIX Association, Berkeley, CA, USA, 1997, pp. 22-22.
  • J. Cohen, Garbage collection of linked data structures, ACM Comput. Surv. 13 (1981) 341-367.
  • F. Henglein, Dynamic typing, in: B. Krieg-BrA 1/4ckner (Ed. ), ESOP '92, Vol. 582 of Lecture Notes in Computer Science, Springer Berlin / Heidelberg, 1992, pp. 233-253.
  • K. Arnold, J. Gosling, The Java programming language (2nd ed. ), ACM Press/Addison-Wesley Publishing Co. , New York, NY, USA, 1998.
  • M. Ma:ntyla:, An introduction to solid modeling, Computer Science Press, Inc. , New York, NY, USA, 1987.
  • H. Bendels, D. W. Fellner, S. Havemann, Modellierung der grundlagen - erweiterbaredatenstrukturenzurmodellierung und visualisierungpolygonalerwelten, in: Modeling - Virtual Worlds - Distributed Graphics, infix, 1995, pp. 149-158.
  • A. H. Barr, Global and local deformations of solid primitives, SIGGRAPH Comput. Graph. 18 (1984) 21-30.
  • E. E. Catmull, A subdivision algorithm for computer display of curved surfaces. , Ph. D. thesis (1974).
  • M. Eck, T. DeRose, T. Duchamp, H. Hoppe, M. Lounsbery, W. Stuetzle, Multiresolution analysis of arbitrary meshes, in: Proceedings of the 22nd annual conference on Computer graph-ics and interactive techniques, SIGGRAPH '95, ACM, NewYork, NY, USA, 1995, pp. 173-182.
  • E. Welzl, Smallest enclosing disks (balls and ellipsoids), in: H. Maurer (Ed. ), New Results and New Trends in Computer Science, Vol. 555 of Lecture Notes in Computer Science, Springer Berlin / Heidelberg, 1991, pp. 359-370.
  • P. Alliez, S. Pion, dd principal component analysis, in: C. E. Board (Ed. ), CGAL User and Reference Manual, 3rd Edition, 2007.
  • C. B. Barber, D. P. Dobkin, H. Huhdanpaa, The quickhull algorithm for convex hulls, ACM Trans. Math. Softw. 22 (1996) 469-483.
  • P. Lindstrom, G. Turk, Fast and memory efficient polygonal simplification, in: Proceedings of the conference on Visualization '98, VIS '98, IEEE Computer Society Press, Los Alamitos, CA, USA, 1998, pp. 279-286.
  • P. Lindstrom, G. Turk, Evaluation of memoryless simplification, IEEE Transactions on Visualization and Computer Graphics 5 (1999) 98-115.
  • J. -M. Lien, N. M. Amato, Approximate convex decomposition of polyhedra, in: Proceedings of the 2007 ACM symposium on Solid and physical modeling, SPM '07, ACM, New York, NY, USA, 2007, pp. 121-131.
  • A. Alexandrescu, Modern C++ design: generic programming and design patterns applied, Addison-Wesley Longman Publishing Co. , Inc. , Boston, MA, USA, 2001.
  • L. Kettner, 3d polyhedral surfaces, in: C. E. Board (Ed. ), CGAL User and Reference Manual, 3rd Edition, 2007.
  • L. Kettner, Halfedge data structures, in: C. E. Board (Ed. ), CGAL User and Reference Manual, 3rd Edition, 2007.
  • D. Burns, R. Osfield, Openscenegraph (osg) (2011). http://www. openscenegraph. org
  • E. Coumans, et al. , Bullet (2011). http://bulletphysics. org
  • B. Jacob, Eigen (2011). http://eigen. tuxfamily. org
  • GNU, Gnu scientific library (gsl) (2011). http://www. gnu. org/software/gsl
  • GNU, Gnu multiple precision arithmetic library (gmp) (2011). http://gmplib. org
  • H. Brnnimann, A. Fabri, G. -J. Giezeman, S. Hert, M. Ho mann, L. Kettner, S. Schirra, S. Pion, 2d and 3d geometry kernel, in: C. E. Board (Ed. ), CGAL User and Reference Manual, 3rd Edition, 2007.
  • INRIA, Open numerical library (opennl) (2010). http://alice. loria. fr/index. php/software/4-library/23-opennl. html
  • L. Saboret, P. Alliez, B. LA(c)vy, Planar parameterization of triangulated surface meshes, in: C. E. Board (Ed. ), CGAL User and Reference Manual, 3rd Edition, 2007.
  • J. Siek, L. -Q. Lee, A. Lumsdaine, Boost graph library (bgl) (2011). URL http://www. boost. org/doc/libs/1_47_0/libs/graph
  • T. J. Parr, R. W. Quong, Antlr: a predicated-ll(k) parser generator, Softw. Pract. Exper. 25 (1995) 789-810.
  • Google, google-sparsehash (2011). http://code. google. com/p/google-sparsehash
  • E. Friedman, I. Maman, Boost variant (2011). http://www. boost. org/doc/libs/1_47_0/doc/html/variant. html
  • H. -J. Boehm, M. Weiser, Garbage collection in an uncooperative environment, Softw. Pract. Exper. 18 (1988) 807-820.
  • M. Yousef, A. Hashem, H. Saad, K. F. Hussain, Zlang (2011). http://z-lang. sourceforge. net
  • A. Munshi, Opencl: Parallel computing on the gpu and cpu, ACM SIGGRAPH Tutorial (2008).