DEV Community

Art
Art

Posted on

Forge4D runs on Android – SMS fulfills its promise

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
Enter fullscreen mode Exit fullscreen mode

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
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

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")
}
Enter fullscreen mode Exit fullscreen mode

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


The pipeline

edit SML/SMS  →  forgecli build android  →  adb install
Enter fullscreen mode Exit fullscreen mode

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
Windows

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

Top comments (0)