nodesnim

The Nim GUI/2D framework based on OpenGL and SDL2.

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install nodesnim
choosenim install nodesnim
git clone https://github.com/Ethosa/nodesnim

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
nodesnim - - - - - - -

Source

Repository https://github.com/Ethosa/nodesnim
Homepage https://github.com/Ethosa/nodesnim
Registry Source nimble_official

README

The Nim GUI/2D framework based on OpenGL and SDL2. [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/) [![Nim language-plastic](https://github.com/Ethosa/yukiko/blob/master/nim-lang.svg)](https://github.com/Ethosa/yukiko/blob/master/nim-lang.svg) [![License](https://img.shields.io/github/license/Ethosa/nodesnim)](https://github.com/Ethosa/nodesnim/blob/master/LICENSE) [![time tracker](https://wakatime.com/badge/github/Ethosa/nodesnim.svg)](https://wakatime.com/badge/github/Ethosa/nodesnim) [![test](https://github.com/Ethosa/nodesnim/workflows/test/badge.svg)](https://github.com/Ethosa/nodesnim/actions) [![channel icon](https://patrolavia.github.io/telegram-badge/follow.png)](https://t.me/nim1love) [![channel icon](https://patrolavia.github.io/telegram-badge/chat.png)](https://t.me/nodesnim)

Stable version - 0.4.2

Install

  1. Install Nodesnim
  2. Stable: bash nimble install nodesnim@#master
  3. Nightly: bash nimble install nodesnim@#nightly
  4. Install dependencies
  5. Linux (tested on Ubuntu and Mint):
    • sudo apt install --fix-missing -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
  6. Windows / MacOS:

Features

  • Godot-like node system.
  • Runtime scene loader.
  • Powerful node build system using YML-like syntax.
  • Stylesheets (CSS-like).
  • Android-like drawables.
  • Customizable GUI themes.
  • Simple usage ```nim import nodesnim

Window("Hello, world!")

build: - Scene scene: - Label hello: call: setSizeAnchor(1, 1) setTextAlign(0.5, 0.5, 0.5, 0.5) setText("Hello, world!") setBackgroundColor(Color(31, 45, 62))

addMainScene(scene) windowLaunch()

```

Now available

This section contains links to documentation for all nodes. |Core |Default nodes |Control nodes |2D Nodes |3D Nodes |Graphics | |:--: |:--: |:--: | :--: |:--: |:--: | |Anchor |Node |Control |Node2D |Node3D |Drawable | |Color |Canvas |ColorRect |Sprite |GeometryInstance|GradientDrawable| |Font |Scene |TextureRect |AnimatedSprite |Camera3D | | |Enums |AudioStreamPlayer|Label |YSort |Sprite3D | | |Exceptions |AnimationPlayer |Button |CollisionShape2D| | | |Image | |EditText |Camera2D | | | |Input | |Box |TileMap | | | |Rect2 | |HBox | | | | |Vector2 | |VBox | | | | |Circle2 | |GridBox | | | | |Polygon2 | |Scroll | | | | |AudioStream | |ProgressBar | | | | |Animation | |Slider | | | | |Vector3 | |Popup | | | | |SceneBuilder| |TextureButton | | | | |StyleSheet | |TextureProgressBar| | | | |TileSet | |Counter | | | | |ChartData | |Switch | | | | |Scripts | |SubWindow | | | | |Scene loader| |CheckBox | | | | | | |ToolTip | | | | | | |Chart | | | |

Debug mode

For use debug mode you should compile with -d:debug or --define:debug, e.g. nim c -r -d:debug main.nim.

Export

Use the Nim compiler user guide for export to the other OS. Static linking SDL2
Also use niminst tool for generate an installer

  • CrossPlatform export for Windows (tested on Windows 7 x64 and Windows 10 x64)
    • nim c -d:mingw -d:release --opt:speed --noNimblePath file.nim
    • put Runtime binaries in the folder with the program.

Screenshots

Hello world example Calculator example Snake game example Screensaver example Novel game example Roguelike game example sample messenger Material Calculator example
|[Wiki][]|[Examples][]|[Docs][]|[Tests][]| |--------|------------|--------|---------|

Stargazers over time