How do I make a basis function matrix?

I am trying to fit a model with splines, and I’m struggling to understand what is happening. In brms, I have this model for some dummy data.

library(brms)
df <- data.frame(y = rnorm(10), x = 1:10)
fit_spline <- brm(y ~ s(x), df)

stancode(fit_spline)
standata(fit_spline)

// generated with brms 2.16.3

functions {
}

data {
int<lower=1> N;  // total number of observations
vector[N] Y;  // response variable

// data for splines
int Ks;  // number of linear effects
matrix[N, Ks] Xs;  // design matrix for the linear effects

// data for spline s(x)
int nb_1;  // number of bases
int knots_1[nb_1];  // number of knots

// basis function matrices
matrix[N, knots_1[1]] Zs_1_1;
int prior_only;  // should the likelihood be ignored?
}
transformed data {
}
parameters {
real Intercept;  // temporary intercept for centered predictors
vector[Ks] bs;  // spline coefficients

// parameters for spline s(x)
// standarized spline coefficients
vector[knots_1[1]] zs_1_1;
real<lower=0> sds_1_1;  // standard deviations of spline coefficients
real<lower=0> sigma;  // dispersion parameter
}
transformed parameters {
// actual spline coefficients
vector[knots_1[1]] s_1_1;

// compute actual spline coefficients
s_1_1 = sds_1_1 * zs_1_1;
}
model {
// likelihood including constants
if (!prior_only) {
// initialize linear predictor term
vector[N] mu = Intercept + rep_vector(0.0, N) + Xs * bs + Zs_1_1 * s_1_1;
target += normal_lpdf(Y | mu, sigma);
}
// priors including constants
target += student_t_lpdf(Intercept | 3, 0.3, 2.5);
target += student_t_lpdf(sds_1_1 | 3, 0, 2.5)
- 1 * student_t_lccdf(0 | 3, 0, 2.5);
target += std_normal_lpdf(zs_1_1);
target += student_t_lpdf(sigma | 3, 0, 2.5)
- 1 * student_t_lccdf(0 | 3, 0, 2.5);
}
generated quantities {
// actual population-level intercept
real b_Intercept = Intercept;
}

From the data section,
Xs is a vector of length N ranging from -0.126 to +0.126
Zs_1_1 is then a knots_1 x N (8x10) matrix of numbers in the range (-1, 1)

How has brms has done to calculate these, and what do they represent?

In standata(fit_splines) I also have a X variable, which isn’t in the Stan code. Is this being created extra by brms?

Xs are a centered and scaled version of the covariate values over which you are going to smooth. I’m not sure how the choice of the scaling factor is determined.

Zs_1_1 contains the basis functions evaluated over your covariate values.