Articles

Thin Plate Spline Interpolation

EN

Thin-plate spline (TPS) interpolation is a smooth method for fitting a surface through scattered points in two or more dimensions...

Interpolation

EN

Interpolation constructs a function that passes exactly through a set of known data points. If the data are...

Gaussian Interpolation

EN

Gaussian radial basis function (RBF) interpolation builds a smooth interpolant from Gaussian functions centered at the data sites...

Least Squares

EN

Least squares fits a model to data by minimizing the sum of squared residuals...

Regression

EN

Regression models the relationship between one or more predictors and a response variable. Unlike interpolation, regression generally does not try to pass exactly through every observation. Instead, it chooses model parameters that balance data fit with a chosen model structure...

Drama

EN

Standard of Iron: The Dead Company is a dialogue series filmed in the arena. An episode goes from script to finished film in five steps, all driven by files under scripts/drama/episodes//...

Asynchronous Programming

EN

Asynchronous programming is a technique for achieving concurrency without forcing one operation to block progress while it waits for another to finish. Instead of requiring each task to complete before the next can make progress, asynchronous code can suspend waiting work and continue with other rea...

Mpi

EN

The Message Passing Interface (MPI) is a standardized, portable interface for message passing across a wide range of parallel-computing systems. It provides library routines for building parallel applications whose processes communicate by explicitly sending and receiving data. The MPI standard defi...

Hardware

EN

Parallel computing uses multiple hardware execution resources to make progress on more than one operation at a time. Those resources may exist inside one CPU core, across several cores or processor sockets, on a GPU, or across multiple networked machines. The useful performance gain depends not only...

Designing Parallel Programs

EN

Designing a parallel program means restructuring a computation so that useful work can proceed concurrently without making coordination costs dominate. A good design does more than create many tasks: it exposes enough parallelism, keeps processors busy, limits communication and synchronization, pres...

Multithreading

EN

Multithreading lets several threads make progress within one process. Threads share its address space and resources such as open files, while each thread has its own stack, registers, and execution position...

Basic Terminology

EN

Let's start with the terms used throughout these notes. Some sound similar but describe different things: how tasks are ordered, whether they run at the same time, and what happens while they wait. These ideas apply across programming languages; later notes explain how individual languages implement...

Evaluating Performance

EN

Evaluating a parallel program means more than asking whether it runs faster with more processors. Good performance analysis looks at how much faster it becomes, how efficiently it uses additional resources, where time is lost, and whether the behavior remains stable as the workload or machine size g...

Gpu Programming

EN

GPUs (Graphics Processing Units) are throughput-oriented processors designed to apply similar operations across large numbers of data elements in parallel. They were originally built for graphics workloads, where millions of pixels or vertices must be processed, but the same architecture is also eff...

Input and Output

EN

Input/output is where VTK starts being a tool you can actually plug into real workflows. Data rarely originates inside VTK; it usually comes from scanners, simulators, CAD tools, or research pipelines. So the ability to read reliably, preserve attributes, and write back out in the right format is wh...

Performance Optimization and Parallelism

EN

When working with complicated datasets and sophisticated visualization pipelines, performance optimization and parallelism become important for delivering real-time or near-real-time insights. VTK (Visualization Toolkit) supports a variety of performance-enhancing techniques and offers a strong fram...

Visualization Techniques

EN

Modern datasets don’t just have “more rows”, they have more dimensions: space, time, uncertainty, multiple physical variables, and often multiple scales of detail. In that world, visualization isn’t decoration; it’s how you think. VTK matters here because it doesn’t force you into one visualization ...

Interactivity

EN

By combining low-level access to rendering primitives with high-level interactor and widget frameworks, VTK enables you to build applications where users can drill into complex datasets, modify display parameters in real time, and receive immediate visual feedback. These capabilities not only enhanc...

Animations

EN

VTK offers a set of tools to create animations and visualize time-varying data. This is particularly useful in scenarios such as...

Custom Filters and Algorithms

EN

Creating custom filters and algorithms opens up a world of possibilities for tailored data processing and visualization. By extending VTK's capabilities, specialized techniques can be introduced that meet the unique needs of scientific research, engineering, medical imaging, or data analysis...

Filters and Algorithms

EN

VTK’s filters and algorithms allow you to convert your data from “a static dataset” to a dynamic pipeline: you generate something, clean it up, extract meaning, and reshape it into a form that’s easier to analyze or visualize. Think of it like a workshop line: raw material comes in, tools operate on...

Data Types and Structures

EN

VTK is built to carry real-world 2D/3D data all the way from “numbers in memory” to “something you can see and reason about.” That means it needs data types that store values, but also store where those values live in space and how they connect. Choosing the right structure early simplifies filterin...

Campaign Missions

EN

This document explains the purpose of every campaign mission: what the player is asked to do, what the mission is designed to teach, and whether victory comes from attacking, defending, or managing the economy...

Promo Capture

EN

Standard of Iron's promotional video pipeline is split into two reproducible stages: deterministic gameplay capture in Arena and offline editorial assembly with FFmpeg...

Documentary

EN

The Barcid Road: Hannibal's War (epic #1547) is finished by scripts/documentary, a small Python package with one entry point: ...

Campaign Map Film

EN

campaign_map_film films the campaign's Mediterranean map for "The road" sequence of each episode (#1531, epic #1547): a camera flight over the map with Hannibal's march drawing in, regions lit, battle sites pinned and dated, and army strengths exported...

Formation Architecture

EN

Standard of Iron has two formation layers because they solve two different spatial problems...

Animation Architecture

EN

How a creature in Standard of Iron goes from "this unit is attacking" to moving geometry on screen — and why it is fast enough to do for thousands of units at once...

Baked Meshes

EN

Every mesh the game assembles out of primitive parts (unit spheres, cylinders, cones and boxes placed by C++ code) is assembled once, at build time, and merged into a single mesh. The running game loads the merged result; it never builds a procedural mesh out of parts, and it never keeps the parts a...

Cursed Gold Vein

EN

The cursed gold vein is a capturable world element built around a deliberate trade-off. Visually, it is a crag of dark rock split by an ore seam, with gold crystals growing from the fracture and a claim flag planted beside it. Mechanically, it rewards ownership with a steady income while damaging th...

Map Generator

EN

scripts/soi-mapgen.py turns a seed, a preset and a handful of parameters into a complete, playable battlefield. It does not replace the map pipeline; it authors the intent that pipeline already consumes and then runs it...

Unit Balance

EN

Unit balance in Standard of Iron is defined by executable simulation inputs: shipped troop data, nation overrides, combat multipliers, formation/stance behavior, production/economy values, and deterministic matchup fixtures run through tools/balance_sim...

Rafts

EN

A raft is a fixed crossing on a river: a log raft on a guide rope stretched between the two banks. It carries one unit at a time from one bank to the other. The Rhône crossing (218 BC) is the first battle of The Barcid Road campaign, and the rafts are what let Hannibal's army cross a river with no b...

Siege Presentation

EN

Roman and Carthaginian ballistas and catapults use reinforced timber carriages, open spoked wheels with iron tyres, bronze straps and hubs, and short moving standards. The presentation scale is 1.35x for ballistas and 1.20x for catapults, applied after...

Minimap

EN

The HUD minimap combines four cached raster layers with one live QML overlay. The split is designed around invalidation: stable pictures of world state are rebuilt only when their inputs change, while continuously animated signals stay on the scene graph...