asopi tech
asopi techOSS Developer

GPU-Native Code Editor

Nimculus

An editor whose rendering talks straight to the GPU.

A GPU-native code editor built on NimNUI. Zed showed what an editor that moves at the speed of thought looks like with Rust and GPU rendering — Nimculus explores the same direction with Nim and Metal. Initial development targets Apple Silicon macOS.

A Zed-style GPU-native code editor built with NimNUI and Metal. In development, Apple Silicon first.

NimIn Development
Rendering
Metal
Initial target
Apple Silicon

Key points

  • A direct rendering pipeline via CAMetalLayer + Metal
  • Retina display support
  • Native integration with Cocoa / QuartzCore
nimeditorgpu

Challenge

Editor responsiveness is decided by the UI foundation

Web-technology editors accumulate input latency and rendering jitter, while general-purpose GUI toolkits are not optimized for editor-specific rendering.

  • Web-based editors accumulate latency between input and paint
  • General-purpose GUI toolkits hit limits optimizing text rendering and scrolling
  • Few editor foundations use the GPU directly — and almost none exist in Nim

Nimculus is a GPU-native code editor built on NimNUI. Zed demonstrated a fast editor experience with Rust and direct GPU rendering — Nimculus explores the same direction with Nim and Metal. The goal is not a clone, but a reinterpretation of that architecture through Nim’s language strengths.

It is currently developed as an Asopitech Labo incubation project, starting from the M1 minimal vertical slice and targeting Apple Silicon macOS first. Bug reports and feature requests are welcome on GitHub Issues.

A rendering pipeline wired to the GPU

Referencing Zed's GPU-accelerated editor architecture, Nimculus mounts a CAMetalLayer on a Cocoa window and renders directly with Metal, implemented in Nim. The goal is not a clone but a reinterpretation that fits Nim's strengths — C FFI, macros, and fast compilation.

  • A minimal vertical slice implemented: macOS window + CAMetalLayer + Metal rendering
  • Retina support and basic input event handling
  • Architecture, design decisions, and roadmap published as documents
UI foundation
NimNUI
Host language
Nim 2.x

Capabilities

Three pillars

GPU rendering, native integration, and design transparency.

GPU rendering

Direct Metal

  • Render surface management via CAMetalLayer
  • Metal clear / rectangle rendering pipeline
  • Retina display scaling

Native integration

macOS first

  • Direct FFI to Cocoa / QuartzCore
  • macOS window management
  • Basic input event capture and handling

Design transparency

Public documents

  • ARCHITECTURE / DESIGN_DECISIONS published
  • ROADMAP and development guidelines published
  • Verifiable via nimble build / test / benchmark

Milestone

M1: the minimal vertical slice

The first milestone implements the rendering and input slice the editor is built upon.

macOS window

Native window creation and management via Cocoa

Metal rendering

Clear / rectangle rendering on a CAMetalLayer

Retina support

Accurate scaling on high-DPI displays

Input event foundation

Basic keyboard and mouse event handling

Tech Stack

Technology stack

Nim combined with Apple's native frameworks.

UI / rendering

GPU-native

NimNUI (UI foundation)Metal + CAMetalLayerQuartzCore

Platform

macOS first

macOS on Apple SiliconCocoa

Build

Nim toolchain

Nim 2.xNimble (build / test / benchmark)

Status

Development status

A very early-stage project, developed from the M1 minimal vertical slice: macOS window, CAMetalLayer, Metal rendering, Retina support, and basic input events. As an Asopitech Labo incubation project, design decisions are developed in the open.

Public Resources

The latest documents, code, and community links in one place.

Get Involved

Join the development

Nimculus is developed in the open under the MIT License. Star it on GitHub to follow progress.