Keep scientific
context visible.
In the building energy example, observation identities, building groups and declared target units stay connected through prediction.
Follow the data’s contextA programming language for scientific workflows.
Aner is being developed to connect data preparation, scientific context, modeling and computation. Keep the meaning of your data close to the code that uses it.
A binary research preview is available.
// Each image gets its own buffers.
let parameters = List(64, 64, 3)
let results = parallel.repeat(
iterations: 64,
task: process_image,
parameters: parameters,
execution: parallel.local(workers: 4),
seed: 2026)
print(results.rows())
print(results.mean(column: 0))Same image function. Four worker threads, scheduled by the OS. Private buffers and ordered results.
A result depends on more than a model. The meaning of an observation, the way you prepare it and the computation you choose all matter. Aner explores what becomes possible when those concerns are designed together.
In the building energy example, observation identities, building groups and declared target units stay connected through prediction.
Follow the data’s contextDeclare separate data populations. Fit standardization on training observations, then apply that fitted preparation to held out data.
See the complete workflowPreview a CSV within a scan budget, or choose local CPU workers for independent simulations. Inspect the documented limits of each operation.
Explore bounded data executionConsider a building energy study. Temperature and occupancy are inputs; energy is the target. But the building, the observation and the declared units still matter when you read the prediction.
This documented development example keeps whole buildings in declared populations and fits preparation on the training population. The prediction retains its observation identity and declared target unit.
Identity, building group, measurements
Apply the fitted standardizer to each population.
Source excerpt. The complete example prepares observations before these lines.
let populations = data.partition_groups(observations,
List("B0", "B1", "B2", "B3"), List("B4", "B5"), List("B6", "B7"))
let preprocessing = ml.fit_standardizer(populations.train())Bounded previews, streaming summaries and explicit execution receipts for CSV workflows.
Inspect a data workflow02Follow Iris from observations through training and evaluation on a separate test dataset.
Read a modeling example03Explore heat diffusion with uncertain parameters and independent simulations on local CPU workers.
Explore the simulationBring a workflow you wish were simpler, a research question or a fresh perspective. Get release updates and help shape a language around the work that matters to you.

Your focused, hardworking partner for building great ideas.
A positive companion who sparks curiosity and great ideas.