Technical Standards

Languages

C++

Standard: C++14 ISO Standard

Compiler: Clang 3 (3.8 or later) or GNU GCC 5 (5.4 or later)

Windows Compiler: MSYS2

CSS

Standard: W3C CSS

Version: CSS3

ECMAScript (Javascript)

Standard: Standard ECMA-262

Encoding

Standard: UTF-8

HTML

Standard: W3C HTML5

Version: HTML5

Python

Standard: PEP8

Version: 3.6.0

What About Python 2? Python 2 is still important, especially for some support targets. However, we should aim to make our code Python 2/3 cross-compatible whenever possible. PEP8 compliance will help us do that.

XML

Standard: W3C XML

Version: 1.0

Libraries

Library Use Version Binding Source License
Cinder Media, Input, etc. 1.5.6 C++ Repo: cinder-git BSD-3
CPGF Signals, Introspection 1.5.6 C++ Repo: lib-git Apache v2
Eigen Linear algebra 3.3.1 C++ Repo: lib-git MPL2
Opus Audio codec 1.3.1 C++ Repo: lib-git BSD-3
Kivy GUI 1.9.2 Python PPA: ppa:kivy-team/kivy MIT
pugixml XML parsing 1.8 C++ Repo: lib-git MIT

Operating System Support Targets

These show minimum specificaaitons for a goal.

Support Goals:

  • 5: Essential
  • 4: High Priority
  • 3: Moderate Priority
  • 2: Low Priority
  • 1: Collateral Support
  • 0: No Support
OS Memory Goal
Microsoft Windows    
Windows 95 256 MB 2
Windows 98 256 MB 3
Windows 2000 256 MB 3
Windows ME 256 MB 3
Windows XP SP1 256 MB 4
Windows XP SP2 512 MB 5
Windows XP SP3 512 MB 5
Windows Vista 512 MB 5
Windows 7 1 GB 5
Windows 8 (Any) 0
Windows 8.1 (Any) 0
Windows 10 (Any) 0
Apple Mac    
OS X 10.0-10.3 PPC 256 MB 2
OS X 10.4 PPC 256 MB 4
OS X 10.4 Intel 256 MB 4
OS X 10.5 512 MB 3
OS X 10.6 1 GB 4
OS X 10.7-10.10 2 GB 4
Linux    
Ubuntu 14.04 512 MB 5
Ubuntu 16.04 512 MB 5
Debian Jessie 512 MB 4
Puppy Linux 256 MB 3
Fedora 20 1 GB 4
OpenSUSE 13.2 1 GB 3
SoaS 1 GB 3

For support consideration: