# Introduction

Thank you for considering contributing the 3D Tiles loader.

Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.

There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the loader itself.

**HINT**: Check the [Roadmap section](https://github.com/nytimes/three-loader-3dtiles#roadmap) in the README, as well as `//TODO` comments within the code hinting at pending tasks.

# Ground Rules

 * Use Typescript and proper typings for all of the code that you write.
 * Create a test for any new feature.
 * Write [typedoc comments](https://api-extractor.com/pages/tsdoc/doc_comment_syntax/) for new information.
 * Ensure cross-browser compatibility for every change. Refer to the `browserslist` field in [package.json](./package.json) for target browsers.
 * Keep feature versions as small as possible, preferably one new feature per version.
 * Refer to [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
 

# Getting started

Build instructions are available in the main [README](./README.md). To contribute, follow these steps:

1. Create your own fork of the code
2. Do the changes in your fork (**don't forget to write tests and generate documentation!**).

3. If you like the change and think the project could use it. Send a pull request. Thank you!

# How to report a bug
If you find a security vulnerability, do NOT open an issue. Please report the vulnerability to the person or team maintaining the code. (refer to [SECURITY.md](./SECURITY.md)).

 When filing an issue, make sure to answer these five questions:

1. What version of Three.js you are using?
2. What browser and operating system are you using? What graphics card?
3. What did you do?
4. What did you expect to see?
5. What did you see instead?

# How to suggest a feature or enhancement

If you find yourself wishing for a feature that doesn't exist in the 3D tiles loader, you are probably not alone. There are bound to be others out there with similar needs. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.

Thank you for contributing!
