Designing any API requires tradeoffs between a number of general factors like simplicity in accomplishing common operations vs. generality, or many commands with few arguments vs. few commands with many arguments. In this section we describe considerations peculiar to 3D API design that have influenced the development of OpenGL.