Multi-channel signed distance field (MSDF) generator for fonts implemented in pure Rust.

Overview

msdfont

Build Status License

WIP - school started so less updates from now on :((

Multi-channel signed distance field (MSDF) generator for fonts implemented in pure Rust.

This crate will soon become a public library. Later MSDF and MTSDF will be implemented.

This project wouldn't exist without Chlumsky's msdfgen and other Rust libraries which implement his algorithm.

TODO πŸ“

  • Add a tool for creating custom shapes
  • Fix: Simple Overlapping Contours Correction - WIP
  • Add a proper example - WIP
  • Improve Overlapping Contours Correction to perfection
  • Add a function for checking intersections for quadratic and cubic functions
  • Add support for Cubic BΓ©zier Curves
  • Implement MSDF generation for fonts
  • Implement MTSDF generation for fonts
  • Add more showcase items
  • rest of the TODOs is in code...
  • Better organization of code
  • Construct a completely user-friendly library

The Algorithm πŸ–₯️

To learn more about the algorithm, read Algorithm.

Output Examples

SDF

Signed Distance Field of '#' character Signed Distance Field of 'A' character Signed Distance Field of 'K' character Signed Distance Field of 'M' character

pseudo-SDF

Pseudo Signed Distance Field of '#' character Pseudo Signed Distance Field of 'A' character Pseudo Signed Distance Field of 'K' character Pseudo Signed Distance Field of 'M' character

You might also like...
unrust - A pure rust based (webgl 2.0 / native) game engine

unrust A pure rust based (webgl 2.0 / native) game engine Current Version : 0.1.1 This project is under heavily development, all api are very unstable

A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

RPG Dialog support for Bevy, written in pure Rust!

🌷 🌷 Bevy x RPG Dialog 🌸 🌸 RPG Dialog support for Bevy, written in pure Rust! bevy-rpg is a plugin crate that adds dialog functionalities to Bevy,

Pure C Game Engine

Corange game engine Version 0.8.0 Written in Pure C, SDL and OpenGL. Running Corange is a library, but to take a quick look at some of the things it d

Pure and simple Vulkan bindings generated from Vulkan-Headers!
Pure and simple Vulkan bindings generated from Vulkan-Headers!

mira Pure and simple Vulkan bindings generated from Vulkan-Headers! Mira provides a simple and straightforward way to interact with Vulkan. Everything

Pure, minimal, and scalable timers

timer-queue A pure, minimal, and scalable structure for tracking expiration of timers let mut q = TimerQueue::new(); q.insert(42, "second"); q.insert(

Rust-raytracer - πŸ”­ A simple ray tracer in Rust πŸ¦€
Rust-raytracer - πŸ”­ A simple ray tracer in Rust πŸ¦€

rust-raytracer An implementation of a very simple raytracer based on Ray Tracing in One Weekend by Peter Shirley in Rust. I used this project to learn

Rust-and-opengl-lessons - Collection of example code for learning OpenGL in Rust

rust-and-opengl-lessons Project requires Rust 1.31 Collection of example code for learning OpenGL in Rust 00 - Setup 01 - Window 02 - OpenGL Context 0

Owner
Leon
Leon
Game examples implemented in rust console applications primarily for educational purposes.

rust-console-games A collection of game examples implemented as rust console applications primarily for providing education and inspiration. :) Game *

Zachary Patten 2 Oct 11, 2022
Conway's Game of Life implemented for Game Boy Advance in Rust

game-of-life An implementation of a Conway's Game of Life environment on GBA. The ultimate game should have two modes: Edit and Run mode which can be

Shane Snover 1 Feb 16, 2022
General purpose client/server networking library written in Rust, built on top of the QUIC protocol which is implemented by quinn

Overview "This library stinks!" ... "Unless you like durian" durian is a client-server networking library built on top of the QUIC protocol which is i

Michael 92 Dec 31, 2022
Chess implemented entirely in the Rust and TS type systems.

Type System Chess This repo contains chess implemented entirely in the (stable) Rust and Typescript type systems. Both languages feature turing comple

null 170 Jul 12, 2023
Rust-implemented master mind game solver

master_mind_rust A Rust-implemented solver for the master mind game. You can play the master mind game online here β†’ https://webgamesonline.com/master

Nariaki Tateiwa 4 Feb 25, 2024
An intent-centric, privacy-preserving protocol for decentralized counterparty discovery, solving, and multi-chain atomic settlement.

Anoma Blockchain prototye This prototype aims to reproduce the following topology: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”‚Sol

anoma 5 Dec 15, 2022
Simple island generator written in rust using bevy engine

Getting Started Easy enough to run cargo run --release Change generation speed Find the system set that looks like this .add_system_set(

Kris 3 Apr 21, 2022
A sci-fi battle simulation implemented in the bevy engine.

Bevy Combat It's a bevy port of my ECS Combat Unity demo. Check out the web demo in your browser. You can use the - and = keys to speed up and slow do

ElliotB256 47 Dec 22, 2022
A low-level gltf parser implemented on nanoserde

Goth-gltf aims to be a low-level, unopinionated reader for glTF files. In comparison with gltf-rs, it: Represents the glTF JSON structure transparentl

Ashley 18 Dec 27, 2022
An Onchain Game Engine implemented in Cairo 1.0

Dōjō Dojo is a full stack toolchain for developing onchain games in Cairo. Dojo leverages the afforadances provided by the Cairo language to offer an

Dojo 25 Feb 2, 2023