wargames.mc (WarGames simulator in MIMERCode)
What happens when you design a programming language from scratch, knowing that half the code written in it will be generated by an AI?
That question drove the creation of MIMERCode — a new programming language that is readable by business analysts, writable by humans, ChatGPT and Claude, and secure enough that you can execute AI-generated code without losing sleep.
MIMERCode ships as two executables: MIMERCodeRunner for console programs and MIMERCodeRunnerGUI for graphical applications. Write a .mc file, double-click, and it runs. No compiler toolchain. No package manager. No dependency hell.
Contents
- 1 Why Another Language?
- 2 What Does It Look Like?
- 3 Contracts: Data You Can Trust
- 4 Pipelines: Composable Workflows
- 5 Channels: One Pattern for All I/O
- 6 A Complete GUI Framework
- 7 Animations That Just Work
- 8 96 Built-In Icons, Two Themes
- 9 Math, Statistics, Geography, and Data Formats
- 10 For LLM System Builders
- 11 For Delphi Developers
- 12 Getting Started
- 13 Price? FREE
Why Another Language?
We already have Python, JavaScript, and a hundred others. So why MIMERCode?
Because the world changed. Large Language Models now generate code every day — inside chatbots, inside automation pipelines, inside tools that non-programmers use to build things. And the languages those LLMs target were designed decades ago, for humans typing at keyboards. They are full of ambiguity, implicit behavior, and silent failure modes that LLMs stumble over constantly.
MIMERCode was designed with three goals:
- Readable by everyone. Plain English keywords. No semicolons. No invisible whitespace rules. Every block closes with
end. A business analyst can read MIMERCode and understand what it does. - Writable by AI. The syntax deliberately matches what LLMs already know from Python and JavaScript. F-strings, slicing, dictionaries, lambdas — they all work the way an LLM expects. Case-insensitive keywords mean
True,true, andTRUEall work. - Secure by design. Contracts validate data at boundaries. Channels sandbox all I/O. Sensitive fields are sealed automatically. There is no way for code — human or AI-generated — to silently access files, networks, or databases without explicit permission.
What Does It Look Like?
Here is a complete MIMERCode program:
program HelloWorld local Name := "World" WriteLn(f"Hello, {Name}!") for I := 1 to 5 do WriteLn(f"Count: {I}") endend
Save it as hello.mc, run MIMERCodeRunner hello.mc, and you get:
Hello, World!Count: 1Count: 2Count: 3Count: 4Count: 5
No imports. No boilerplate. No configuration files. If you have ever written a line of code in any language, you can read this.
Contracts: Data You Can Trust
Every real program receives data from the outside world — from users, APIs, databases. And that data is frequently wrong. MIMERCode solves this with contracts: you declare the exact shape of valid data in one place, and the runtime enforces it automatically.
contract Customer Name: required String minlen(1) maxlen(200), Email: required String, Age: optional Integer range(0, 150), Active: default true Booleanend
If invalid data arrives, it is rejected before your code ever sees it. No manual validation. No scattered if-checks. The contract is simultaneously the definition, the validation, and the documentation.
Sensitive fields get even better treatment:
contract PaymentRequest CardNumber: required String sensitive, CVV: required String sensitive, Amount: required Double gte(0)end
Fields marked sensitive are sealed at creation. Every accessor returns masked data (****). Logging cannot accidentally leak card numbers. Error messages cannot expose secrets. The only way to access the real value is an explicit unseal() call, creating a clear audit trail.
Pipelines: Composable Workflows
Real-world programs are multi-step workflows: validate, enrich, transform, render, deliver. MIMERCode pipelines make this explicit:
pipeline InvoiceProcess input as OrderData output as DeliveryPackage Validated := ValidateOrder(Input) Customer, Pdf := fork Validated => EnrichCustomer() => RenderOrder() |> HtmlToPdf() end return Assemble(Customer, Pdf)end
Each step has a name and a contract. The fork keyword runs branches in parallel. Every step can declare its own error policy: abort, skip, retry, or fallback. The runtime logs every step with timing and trace IDs automatically. You can even load pipeline definitions from JSON configuration — change the workflow without changing code.
Channels: One Pattern for All I/O
Files, HTTP, databases, authentication — MIMERCode uses the same two-verb pattern for everything:
// Read a filelocal F := open("file://data/config.json")local Content := F.Read()close(F)// Call an APIlocal Api := open("https://api.example.com/v1")local Users := Api.Get("/users")close(Api)// Serve HTTPlocal Web := serve("http://0.0.0.0:8080")on Web.Get("/") as Req: HttpRequest return "<html><h1>Hello!</h1></html>"end
All paths are sandboxed. Path traversal is rejected. There is no eval(), no exec(), no import os. If an LLM generates MIMERCode, it physically cannot access resources you have not explicitly permitted through a channel.
A Complete GUI Framework
MIMERCode includes a full declarative GUI framework, rendered by its own canvas engine — every pixel is painted by MIMERCode, with no platform widget dependencies.
view Counter state Count := 0 end func Increment() Count := Count + 1 end render vbox padding: 16, gap: 8 label text: f"Count: {Count}", font_size: 24 end button text: "Increment", on_click: Increment end end endendlocal App := serve("gui://Counter", title: "My Counter", width: 300, height: 200)
Over 30 built-in widgets are available: text inputs, textareas with line numbers, numeric editors with hex/binary support, checkboxes, radio buttons, sliders, dropdown selects, tab containers, splitters, menubars with keyboard shortcuts, tree views, status bars, and more.
The table widget is a full data grid with sorting, column filtering, cell editing, grouping, custom cell templates, and keyboard navigation:

The chart widget renders line, bar, area, pie, donut, and scatter charts with tooltips, legends, zoom, and click events. Multi-series combo charts (bar + line overlay) are supported with explicit series blocks.

Choropleth map charts display geographic data with color-coded regions, hover effects, and drill-down navigation. Click a country to see its states. Click a state to see its counties. The built-in map downloader tool converts Natural Earth GeoJSON data to MIMERCode’s lightweight .mcmap format.

Animations That Just Work
Add a single transition property to any widget and style changes animate smoothly:
button text: "Hover me", background: if IsHovered then "primary" else "surface" end, transition: "button_hover", on_mouseenter: func() IsHovered := true end, on_mouseleave: func() IsHovered := false endend
Thirteen named transition presets are built in — from subtle "fade" and "focus" to playful "bounce" and "spring" with elastic overshoot. Twelve easing functions are available, including cubic, back, bounce, and elastic variants. All animations run at 60fps.
Full SVG rendering with SMIL animations is also supported — including <animate>, <animateTransform>, and <animateMotion> for path-following animations. Build loading spinners, animated icons, and data visualizations directly in SVG.
96 Built-In Icons, Two Themes
MIMERCode ships with 96 Material Design icons (from add to warning, including arrows, cloud operations, media controls, social icons, and developer tools) and complete Dark and Light themes with 48+ semantic color tokens that every widget respects automatically.
[Screenshot suggestion: Side-by-side comparison of the same app in Dark and Light theme]
Math, Statistics, Geography, and Data Formats
The standard library is comprehensive:
- 55+ math functions — trigonometry, logarithms, combinatorics, random distributions (normal, uniform), bitwise operations, and constants (
pi,e,tau,inf,nan) - Statistics — median, standard deviation, variance, percentile, Pearson correlation, cumulative sums, array operations
- Linear algebra — vectors, matrices, dot/cross products, determinants, inverse, solve
- Geographic functions — Haversine distance, bearing, great-circle paths, Mercator projection, point-in-polygon, polygon area, coordinate conversion
- Data formats — JSON parse/stringify and CSV parse/stringify with full RFC compliance (quoted fields, escaped quotes, custom delimiters)
- Templates — Mustache-based rendering with automatic sensitive field masking
For LLM System Builders
If you are building a system where an LLM generates code at runtime, MIMERCode was designed specifically for you. The combination of contracts, channels, and pipelines means you can execute LLM-generated code with confidence:
- Invalid data is rejected at entry — contracts validate before your code runs
- Secrets never leak — sensitive fields are sealed, even in error messages
- I/O is sandboxed — channels prevent unauthorized file, network, or database access
- Every step has error handling — pipelines provide per-step abort/skip/retry/fallback
- Execution is fully traceable — built-in logging with trace IDs and timing
An LLM that generates MIMERCode cannot import os; os.system("rm -rf /"). It cannot read /etc/passwd. It cannot send your data to an unauthorized endpoint. The language itself makes these things impossible.
For Delphi Developers
MIMERCode will feel immediately familiar. It inherits Delphi’s class/record/interface model, constructor/destructor lifecycle, virtual/override dispatch, properties, and try/except/finally. What changed is the boilerplate: no begin/end pairs (just end), no semicolons, func instead of function/procedure, return instead of Result :=, and local variables declared anywhere instead of a var block at the top.
The runtime is built in Delphi, rendered via GDI+, and runs natively on Windows.
Getting Started
MIMERCode is developed by Components4Developers. To get started:
- Download MIMERCodeRunner (console) or MIMERCodeRunnerGUI (graphical)
- Create a
.mcfile with any text editor - Run it:
MIMERCodeRunner myprogram.mc
The MIMERCode User Manual covers everything from Hello World to choropleth maps, with complete property references for every GUI widget.
MIMERCode is not trying to replace Python or JavaScript. It is solving a specific, growing problem: how do you let AI generate code that is safe to run? Contracts, channels, and pipelines are the answer.
Copyright 2026 Components4Developers – Kim Bo Madsen. MIMERCode is proprietary commercial software.
This is both a teaser and a release post with download links and setup instructions to get you started.
Make sure to read the README and the LICENSE file before use.
Please provide feedback! If you like what we do, share your enthusiasm with others. Rate us with a thumbs up where you can – it helps us know you want us to keep going!
Downloads:
- MIMERCode – github.com/KimMadsen/MIMERCode
- theDANE – github.com/KimMadsen/theDANE
theDANE, our Delphi-native code editor (and my daily replacement for Notepad++), will receive an update shortly with more features and bug fixes. It is 100% written in Delphi.
Price? FREE
Version 1.0.0 has just been released as a FREE download of the executable!
![]()





