imgui-js - JavaScript bindings for Dear ImGui using Emscripten and TypeScript

  •        318

The original Dear ImGui demo code from imgui_demo.cpp has been ported to imgui_demo.ts. Also, the Memory Editor from the imgui_club project (imgui_memory_editor.h) has been ported to imgui_memory_editor.ts and added to the demo for browsing the Emscripten memory space. A CodePen using the Ace editor to live-edit a window.

https://flyover.github.io/imgui-js/example/
https://github.com/flyover/imgui-js

Dependencies:

@types/emscripten : 0.0.31
@types/node : ^10.9.4
@types/systemjs : ^0.20.6

Tags
Implementation
License
Platform

   




Related Projects

Imgui - Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies

  •    C++

Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies).

ImGui.NET - An ImGui wrapper for .NET.

  •    CSharp

This is a .NET wrapper for the immediate mode GUI library, Dear ImGui (https://github.com/ocornut/imgui). ImGui.NET lets you build graphical interfaces using a simple immediate-mode style. ImGui.NET is a .NET Standard library, and can be used on all major .NET runtimes and operating systems. Included is a basic sample program that shows how to use the library, and renders the UI using Veldrid, a portable graphics library for .NET. By itself, Dear ImGui does not care what technology you use for rendering; it simply outputs textured triangles. Example renderers also exist for MonoGame and OpenTK (OpenGL).

imgui-rs - Rust bindings for dear imgui

  •    Rust

Examples are under the imgui-examples directory. Note to Windows users: You will need to use the MSVC ABI version of the Rust compiler along with its associated dependencies to build this libary and run the examples.

imgui-node-editor - Node Editor using ImGui prototype

  •    C++

This is an implementaion of node editor with ImGui-like API. Project purpose is to serve as a basis for more complex solutions like blueprint editors.


ImGuizmo - Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui

  •    C++

A WIP little sequencer used to edit frame start/end for different events in a timeline. Check the sample for the documentation. More to come... ImGizmo is a small (.h and .cpp) library built ontop of Dear ImGui that allow you to manipulate(Rotate & translate at the moment) 4x4 float matrices. No other dependancies. Coded with Immediate Mode (IM) philosophy in mind.

Imogen - GPU Texture Generator

  •    Python

WIP of a GPU Texture generator using dear imgui for UI. Not production ready and a bit messy but really fun to code. Basically, add GPU and CPU nodes in a graph to manipulate and generate images. Nodes are hardcoded now but a discovery system is planned. Currently nodes can be written in GLSL or C or Python. Use CMake and VisualStudio to build it. Only Windows system supported for now.

FlyoverKit - 360° flyover on an MKMapView 🚁

  •    Swift

FlyoverKit enables you to present stunning 360° flyover views on an MKMapView with zero effort while maintaining full configuration possibilities. FlyoverKit builds the core of STLocationRequest which enables you a way to request the user location services via a 3D 360° flyover MapView. The example Application is an excellent way to see FlyoverKit in action. You get a brief look of the available configuration options and how they affect the flyover behaviour. Simply open the FlyoverKit.xcodeproj and run the FlyoverKit-Example scheme. Please keep in mind that the SatelliteFlyover and HybridFlyover will only work on a real iOS device.

nuklear - A single-header ANSI C gui library

  •    C

This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window and input handling but instead provides a very modular library approach by using simple input state for input and draw commands describing primitive shapes as output. So instead of providing a layered library that tries to abstract over a number of platform and render backends it only focuses on the actual UI. This library is self contained in one single header file and can be used either in header only mode or in implementation mode. The header only mode is used by default when included and allows including this header in other headers and does not contain the actual implementation.

gpuvis - GPU Trace Visualizer

  •    C++

gpuvis code is MIT licensed. Dear ImGui was developed by Omar Cornut and every direct or indirect contributors to the GitHub. The early version of this library was developed with the support of Media Molecule and first used internally on the game Tearaway.

azul - Desktop GUI Framework

  •    Rust

Azul is a free, functional, IMGUI-oriented GUI framework for rapid prototyping of desktop applications written in Rust, supported by the Mozilla WebRender rendering engine, using a CSS / DOM model for layout and styling. Read more about the Hello-World application ...

OpenBoardView - View .brd files

  •    C

Linux SDL/ImGui edition software for viewing .brd files, intended as a drop-in replacement for the "Test_Link" software and "Landrex".

STLocationRequest - Request the Location Services via a 3D 360° flyover MKMapView 🗺

  •    Swift

STLocationRequest is a simple and elegant way to request the users location services at the very first time. The STLocationRequestController shows a beautiful 3D 360° Flyover-MapView bult on top of FlyoverKit with over 25 cities and landmarks. Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

nbind - :sparkles: Magical headers that make your C++ library accessible from JavaScript :rocket:

  •    C++

nbind is a set of headers that make your C++11 library accessible from JavaScript. With a single #include statement, your C++ compiler generates the necessary bindings without any additional tools. Your library is then usable as a Node.js addon or, if compiled to asm.js with Emscripten, directly in web pages without any plugins. nbind works with the autogypi dependency management tool, which sets up node-gyp to compile your library without needing any configuration (other than listing your source code file names).

js-nacl - Pure-Javascript High-level API to Emscripten-compiled libsodium routines.

  •    Javascript

A high-level Javascript API wrapping an Emscripten-compiled libsodium, a cryptographic library based on NaCl. Includes both in-browser and node.js support. The paper "The security impact of a new cryptographic library" is an excellent summary of the motivation behind the NaCl API and library design.

empythoned - CPython compiled to JS using emscripten

  •    Python

Empythoned is a build script that uses Emscripten to compile CPython for use in a browser. It attempts to compile the main interpreter as a single small executable and the whole standard library as dynamically loaded libraries. The project is in its infancy. Right now the core interpreter works very well, but many of the libraries either don't work at all or contain various bugs.

frontend-bootcamp - Frontend Workshop from HTML/CSS/JS to TypeScript/React/Redux

  •    TypeScript

In this two-day workshop you'll learn the basics of frontend development while building a working web app. The first day provides an introduction to the fundamentals of the web: HTML, CSS and JavaScript. This is targeted at new and experienced developers alike. On the second day we'll dive into more advanced topics like TypeScript, state management, and testing. While the examples should be accessible to anyone, you'll get the most out of it if you have some prior experience with programming and web technologies.

emsdk - Emscripten SDK

  •    Python

Emscripten toolchain is distributed as a standalone Emscripten SDK. The SDK provides all the required tools, such as Clang, Python and Node.js along with an update mechanism that enables migrating to newer Emscripten versions as they are released. You can also set up Emscripten from source, without the pre-built SDK, see "Installing from Source" below.

BrowserFS - BrowserFS is an in-browser filesystem that emulates the Node JS filesystem API and supports storing and retrieving files from various backends

  •    Javascript

BrowserFS is an in-browser file system that emulates the Node JS file system API and supports storing and retrieving files from various backends. BrowserFS also integrates nicely into the Emscripten file system. More backends can be defined by separate libraries, so long as they extend the BaseFileSystem class. Multiple backends can be active at once at different locations in the directory hierarchy.

emscripten - Emscripten: An LLVM-to-JavaScript Compiler

  •    C

Emscripten is an LLVM-to-JavaScript compiler. It takes LLVM bitcode - which can be generated from C/C++, using llvm-gcc (DragonEgg) or clang, or any other language that can be converted into LLVM - and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run). Emscripten is available under 2 licenses, the MIT license and the University of Illinois/NCSA Open Source License.