VOOZH about

URL: https://dev.to/artanidos/forge4d-runs-on-android-sms-fulfills-its-promise-42i7

⇱ Forge4D runs on Android – SMS fulfills its promise - DEV Community


👁

The journey

28 days. 41,000 lines of C#. Written, refactored mercilessly, and then thrown away.

That's where Forge4D started. We traded 41,000 lines of C# for 19,000 lines of C++. Leaner. Faster. Ours.

Along the way we built two things that didn't exist before:

  • SML – Simple Markup Language. QML-inspired, describes the UI.
  • SMS – Simple Multiplattform Language. Kotlin-like syntax, on keyword for events, compiles to native ARM.

Today, SMS fulfilled its name.


It runs on Android

03-24 13:11:18.522 28650 28682 I godot : [SMS][info] button clicked

One log line. First event fired on Android. Native ARM. No JVM, no Gradle hell.

Here's the entire app that produced it:

main.sml – the UI

Window {
 id: mainWindow
 title: "Android Demo"
 size: 360, 640

 VBoxContainer {
 anchors: left | top | right | bottom
 padding: 32, 32, 32, 32

 Label {
 id: heading
 text: "Hello from Forge on Android"
 fontSize: 40
 }
 Label {
 id: subline
 text: "Vertical slice - build with forgecli build android."
 fontSize: 25
 }
 Control { sizeFlagsVertical: expandFill }
 Button {
 id: btnTest
 width: 300
 height: 100
 text: "Tap me"
 fontSize: 25
 sizeFlagsHorizontal: shrinkCenter
 }
 }
}

main.sms – the logic

var tapCount = 0

on mainWindow.ready() {
 log.info("android_demo ready")
}

on btnTest.clicked() {
 tapCount = tapCount + 1
 var btn = ui.getObject("btnTest")
 btn.text = "Tapped " + tapCount + " times"
 log.info("button clicked")
}

That's the whole app. We tapped 4 times. Thorough testing. 😄


The pipeline

edit SML/SMS → forgecli build android → adb install

No Gradle. No waiting. Cold start: ~2 seconds release build.

First deploy felt instant. That's because the scripting engine wasn't compiled in yet – no SO, no SMS. That's how we learned it works. 😄


Two platforms. One codebase.

We already had a native Mac app running – almost expected.
Android today was the real test.

Mac ✓

Android ✓

SMS is now genuinely Simple Multiplattform Language. Not a promise. A fact.


Godot under the hood

You might have noticed the log line says godot. That's not a coincidence – Godot is the engine underneath Forge4D. It gives us 3D, physics, particles, animations, and video projection onto surfaces in 3D space. Out of the box.

Tomorrow we start ForgeReader – a tablet book reader with a 3D page-turn animation. With Godot underneath, that's not a feature we have to build. It's just there.


AI writes SMS. Humans can read it.

SMS was designed so a language model can generate it and a human can review it. No magic annotations, no framework-specific patterns to memorize.

You describe what you want. The AI writes SMS. You read it. You ship it.


Secure Sandbox

Forge4D runs inside the Android Secure Sandbox – fully compliant. Apple allows JavaScript, React Native, Flutter. Forge4D would pass their review too.


The Forge ecosystem

  • Forge4D – the framework (C++, SML, SMS, Godot)
  • ForgePoser – 3D animation app, written in 900 lines of SMS
  • ForgeSTA – Speech to Text to Action
  • ForgeCrowdBooks – collaborative book platform (Git/Forgejo/Codeberg, IPFS-ready)
  • ForgeCMS – SML + Markdown + Templates → static HTML
  • ForgeReader – tablet reader/editor for CrowdBooks (starts tomorrow)

Shared underneath: sml-go – a Go implementation of the SML parser, used by ForgeCMS and ForgeCrowdBooks.


Stack

  • ~19,000 lines of C++ (refactored from 41,000 lines of C#)
  • Godot as the engine foundation
  • SML for UI (QML-inspired)
  • SMS for logic (own language, Kotlin-like)
  • Dual license (like Qt)
  • Codeberg: CrowdWare

Forge4D on Mac

👁

We will support
Mac
Android
Linux

C++ developer? Want to review code or contribute? Reach out.