For $d=3$, vertex coordinates of a regular simplex have a simple expression since vertices correspond to four vertices of a cube. Is there a simple expression for higher dimensions? In particular I'm interested in $d=2^n-1$, integer $n$.

Edit: by coordinates I mean points in $\mathbb{R}^d$. Every $d$-simplex has a simple expression for coordinates in $\mathbb{R}^{d+1}$, as Mariano shows below


It is known that there is a regular simplex of side length $\sqrt{(d+1)/2}$ whose vertices are vertices of the cube $[-1,1]^d$ in $\Bbb{R}^d$ if and only if there exists a Hadamard matrix of order $d+1$; this is a square matrix of $\pm 1$-entries with pairwise orthogonal columns.

In particular, there exist Hadamard matrices of order $2^n$, one of which can be constructed using the recursive Sylvester's construction as explained on the above linked wikipedia page:

Let $H_0=[1]$ and $H_{n+1}=\left[\array{H_n & H_n \\\\ H_n & -H_n}\right].$

Note that the first column of $H_n$ consists only of ones. Delete it to obtain $2^n$ row vectors in $\Bbb{R}^{2^n-1}$. These are the coordinates of a regular simplex.

  • $\begingroup$ Actually, I was already looking at Hadamard matrices in relation to this problem because such matrix is a common design matrix for exponential families, somewhat special in that it gives a transformation that decorellates components of a uniform multinomial random variable. So now, in addition to decorrelating components, it maps the variable (which lies in $2^n-1$ simplex embedded in $d=2^n$ space since variable l_1 norm is fixed) into d=2^n-1 dimensions with nice expression for extreme points, neat! $\endgroup$ – Yaroslav Bulatov Sep 14 '10 at 22:14
  • $\begingroup$ Do you have a reference or a place where I can read more about this simplex in cube<->hadamard connection ? $\endgroup$ – Yaroslav Bulatov Sep 20 '10 at 2:16
  • $\begingroup$ There is also an equivalence with inscribing cross polytopes in cubes. A nice reference to this and more is Adams, Zvengrowski and Laird, Vertex embeddings of regular polytopes, Expo. Math. 21 (2003), no. 4, 339--353. I can't find an open version on the web, but the link to the published version is dx.doi.org/10.1016/S0723-0869(03)80037-3 . $\endgroup$ – Konrad Swanepoel Sep 20 '10 at 9:17

One interesting problem is to determine the $n$ such that there is a regular simplex in $\mathbb{R}^n$ with rational/integer coordinates. This is a well-known old problem which I discussed in this 1998 usenet thread, and is a nice application of the Hasse-Minowski theory of rational quadratic forms. The answer is yes iff $n+1$ is the sum of one, two, four or eight odd squares.


The $d$ points $(0,\dots,0,1,0,\dots,0)$ are the vertices of a regular $(d-1)$-simplex. If you want it to be centered at the origin, just substract their barycenter from them.

  • 1
    $\begingroup$ Yes, this seems to work to get a $(d-1)$-simplex in $\mathbb{R}^d$, but the question is I think about a $d$-simplex in $\mathbb{R}^d$. $\endgroup$ – Louigi Addario-Berry Sep 14 '10 at 19:00
  • $\begingroup$ that gives coordinates in d+1 dimensions, but it's not clear when it corresponds to easy expression in d dimensions (like it does for 3-simplex) $\endgroup$ – Yaroslav Bulatov Sep 14 '10 at 19:01
  • $\begingroup$ You may want to add the detail that you want the points to be in some specific space to the question, Yuraslov. $\endgroup$ – Mariano Suárez-Álvarez Sep 14 '10 at 19:04
  • 2
    $\begingroup$ I've done this recently, you just add in a point at $$ (-t, -t, \ldots, -t) $$ and figure out what $t$ needs to be. Then shift if it needs to be centered at the origin. $\endgroup$ – Will Jagy Sep 14 '10 at 19:18
  • 1
    $\begingroup$ In $R^n,$ all coordinates of the final point are $$ \frac{1 - \sqrt{1 + n}}{n} \; \; = \;\; \frac{-1}{1 + \sqrt{1 + n}} $$ $\endgroup$ – Will Jagy Sep 14 '10 at 21:08

Compute the full Q matrix from the QR decomposition of a column vector of ones, and drop the first column.

eg in R+

simplex <- function(n) {
  • $\begingroup$ This is amazing! So clever $\endgroup$ – pharmine Oct 20 '16 at 7:51
  • $\begingroup$ Neat trick! ${}$ $\endgroup$ – J. M. is not a mathematician Apr 8 '17 at 14:33
  • $\begingroup$ Matlab n=10;[q,r] = qr(ones(n,1)); q=q(:,2:end). The 10 rows are the 10 vertices of a 9 dimensional simplex. $\endgroup$ – Pushpendre May 3 '18 at 3:09

Since this question is back on the front page, I wanted to mention the simplex code. For $b\ge 2$, and $n\ge1$, the code consists of $b^n$ code words, each of which is a $b$-ary string of length $s=(b^n-1)/(b-1)$. The Hamming distance between any two codewords is $b^{n-1}$. Therefore, if you write the $(b-1)$-simplex using your favorite coordinates in $\mathbf{R}^{b-1}$, then substituting these $b$ vertices for the $b$ digits in your codewords and concatenating the resulting words into vectors in $\mathbf{R}^{(b-1)s}$ gives you a nice set of coordinates for the $(b^n-1)$-simplex.

For example, taking $b=2$ and $n=2$ gives the 4 alternating vertices of the 3-cube.


The coordinates of the vertices of a regular ''n''-dimensional simplex can be obtained from these two properties,

  1. For a regular simplex, the distances of its vertices to its center are equal.
  2. The angle subtended by any two vertices of an ''n''-dimensional simplex through its center is $\arccos\left(\tfrac{-1}{n}\right)$

If we initialize our first vertex to be along the first dimension, we can iteratively find the subsequent vertices by following the criteria above. Here's the code in Julia:

function regular_simplex(ndims, radius)
  verts = [zeros(ndims) for i in 1:(ndims+1)];
  for i in 1:(ndims+1)
    if i > 1
      for j in i:(ndims+1)
        verts[j][i-1] = (-dot(verts[i-1], verts[j]) - 1 / ndims) / verts[i-1][i-1];
    if i <= ndims
      verts[i][i] = sqrt(1 - sum(verts[i].^2))
  return verts .* radius;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.