Welcome to the Native Client SDK project_templates directory. Currently, this directory contains a mechanism to allow a developer to bootstrap a native client project and write a lot of the NaCl-specific code automatically, so the developer can add her own functionality quickly. The projects created are designed to be self-contained, meaning that they have everything they need to run, except a server. To start a project, run "./init_project.py" or "python init_project.py" depending on your system configuration. The script will give you usage information when run with -h or when insufficient or malformed arguments are provided. The result of the script is a project with the name you provide at a location of your choice. If you have your own server, you may create the project in a location it serves. Otherwise, you may create a project under the SDK examples directory and examples/httpd.py to serve your project quickly - at least temporarily. In the future, this directory is intended as a repository for useful stub code, code snippets, and code generators that can be used to facilitate rapid development. For now we support initial project setup via init_project.py, but any generically useful code can be added here if it follows a reasonable organization. The organization is as follows: project_templates: Contains any top-level scripting elements that apply or may come in useful for the generation of all NaCl/Pepper2 projects, common Makefile sections, and this README. project_templates/[language]: For any given language there should be a directory with a name that is commonly associated with that language. project_templates/[topic] project_templates/[language]/[topic] For any given programming topic, such as audio, 2d, or 3d programming, there should be a directory at the root level for any components that are not language specific and that may apply to that topic. For corresponding components that are language specific, a sub-directory for the topic may also be created under the language directory. Note that the layout in this directory does not reflect the layout of the projects that are created. It is merely a set of simple guidelines to help organize generic code and utilities so they can be managed here. How generated projects are laid out is left up to the design of the particular code-generator.