Standard Triangulated Language
プレーンテキストで記述されたASCII STL形式と、バイナリSTL形式がある。どちらのファイル形式でも、三角形の法線ベクトル(長さ1の単位ベクトル)と、面の表裏を示すために右手系に従って並んだ三角形の座標データを三角形の数だけ含む。このような冗長性のため、面の表裏は法線ベクトルと各点座標の記述順序(右手系)のどちらでも判別できる。
ASCII形式は人間が見た時の可読性が高いが、バイナリ形式と比較してファイルサイズが大きくなり、さらにファイル読み書き時の処理に時間がかかる。
書式は非常に単純である。
すべての行は以下の形式を満たす。:
最初の行は以下の文で始まる。:
nameはオプションだが、省いた場合にも必ず半角スペースが必要である。 このあとに三角形データが続く。:
法線ベクトルは英語でnormal vectorと表記される。ここではfacet normalで三角形の法線ベクトルを意味する。法線ベクトルは大きさ1の単位ベクトルである。三角形の座標(vertex)は反時計回りに回る順番となる。数学上は三角形の座標から法線ベクトルは決定されるのだが(逆に法線ベクトルからは座標はわからない。後述するように法線ベクトルデータが直接扱われることは少ない)、三角形の法線ベクトルも同時に表示する規格となっている。 ni - nk とv1x - v3z は、e表記法(例:1.000000e+01 )で表記される。 facet normal と outer loop の間のスペースは必要である。法線ベクトルの成分はマイナスを取りえるが、座標の成分はゼロか正値のみである。
ファイルの最後は以下の文で終了する: