[guided]We begin with a [Steiner triple system](/page/Steiner%20Triple%20System) $(X,\mathcal{B})$ of order $v$. This means that $X$ is a set with $|X|=v$, each block $B \in \mathcal{B}$ is a $3$-element subset of $X$, and every $2$-element subset of $X$ occurs in exactly one block of $\mathcal{B}$.
Let $\mathbb{F}_2=\{0,1\}$ be the field with addition modulo $2$. The construction replaces each old point $x \in X$ by two labelled points $(x,0)$ and $(x,1)$, and then adds one new point $\infty$ which is not in $X \times \mathbb{F}_2$. Thus we define
\begin{align*}
Y := (X \times \mathbb{F}_2) \cup \{\infty\}.
\end{align*}
Since
\begin{align*}
|X \times \mathbb{F}_2|=2|X|=2v,
\end{align*}
the new point set has cardinality $|Y|=2v+1$.
There are two kinds of blocks. For each $x \in X$, define the vertical block
\begin{align*}
V_x := \{\infty,(x,0),(x,1)\}.
\end{align*}
This block ties together the two copies of $x$ with the new point. For each old block $B=\{a,b,c\}\in\mathcal{B}$ and each triple $(i,j,k)\in\mathbb{F}_2^3$ satisfying $i+j+k=0$, define the lifted block
\begin{align*}
L_{B,i,j,k} := \{(a,i),(b,j),(c,k)\}.
\end{align*}
The condition $i+j+k=0$ is the parity rule that makes the doubling construction work.
Finally set
\begin{align*}
\mathcal{C}
:=
\{V_x : x \in X\}
\cup
\{L_{B,i,j,k} : B=\{a,b,c\}\in\mathcal{B},\ i,j,k\in\mathbb{F}_2,\ i+j+k=0\}.
\end{align*}
Every member of $\mathcal{C}$ has three distinct points. For $V_x$, the points $\infty$, $(x,0)$, and $(x,1)$ are distinct because $\infty \notin X\times\mathbb{F}_2$ and $0\neq 1$ in $\mathbb{F}_2$. For $L_{B,i,j,k}$, the old block $B=\{a,b,c\}$ has three distinct elements, so the first coordinates of $(a,i)$, $(b,j)$, and $(c,k)$ are distinct; hence these three ordered pairs are distinct.[/guided]