If your model file is encoded with valid vertex normals, they will be preserved. If they are missing, or null (0, 0, 0), we will automatically recompute them for the entire geometry. Some formats, like STL do not include vertex normals, so we always recompute them. We use a "crease angle" of 45° (normals will be smoothed together if the angle between two faces is less than 45°).
We also remove vertex normal data from point clouds, to reduce download time and improve performance, since they are typically not useful in this context.
Troubleshooting
If your model appears completely black or has other strange shading issues, it could indicate inverted normals. Viewing the model in Shadeless or Matcap mode is a quick way to check if normals are the cause. You can also switch to single-sided rendering in 3D Settings. If the object disappears unexpectedly, the normals are likely inverted.
Normals can also behave unexpectedly if the mesh has a "non-uniform" scale, commonly caused by Mirror modifiers. For example, a scale of [1, -1, 1] might occur on an object flipped over the Y-axis.
In any of these cases, it's usually best to apply any modifiers, apply scale/rotation/potion transformations (so that everything is [1, 1, 1]), and if necessary recalculate normals. This is usually best practice before uploading even if you're not experiencing issues with normals/shading.
Soft and Hard Edges
If you want your model to appear with hard edges between faces, for 3D printable assets for example, you should make sure your normals are valid and your vertices are "unwelded" or "duplicated".
Alternatively, if you want your model to be smoothed, so as not to see the polygon edges, you should make sure the normals are welded, or shared by the vertices of both faces.
Learn more about flat and smooth shading here.
Blender
Edge creasing (Shift+E) is specific to Blender and will not export correctly. The best way to export hard edges is to mark edges as "Sharp" in the Shading/UVs toolbox and then use an "EdgeSplit" modifier with Edge Angle unchecked and Sharp Edges checked. Then, apply all the modifiers (before exporting .blend) or when you export to OBJ make sure "Apply modifiers" is checked. This will split the vertices along the edges you selected.
Maya
You can control the "crease angle" of a mesh directly. Select the mesh and go to Mesh Display → Set Normal Angle... (Mesh Display → Soften/Harden Edges in Maya 2018) then choose an angle and Apply. Setting an angle of 0° should create completely hard edges, while setting an angle of 180° should create completely soft edges.