A relatively simple puzzle generator application written in Rust and used via Javascript

Overview

Puzzlip

                                            Dependencies GitHub Issues Contributions welcome License

Basic Overview

This is a relatively simple puzzle generator application written in Rust and used via Javascript in https://puzzlip.com. If you like the game or use the code please consider buying me a coffee

Disclaimer

This was made to learn/practice both Rust and wasm so the code quality is definitely subpar with a lot of room for improvements/optimizations. Looking forward to PRs that improve the codebase.

Technical overview

The application works by loading an image from a remote URL, loading it in memory using the image crate, taking the difficulty multiplier and generating a square grid of image pieces. The grid is sent back to Javascript. When a user clicks on a field, either left or right, the click location,relative to the canvas, is sent back to Rust and the clicked piece is rotated to it's correct position, again, using the image crate. The data that is transferred Rust <> Javascript is encoded using serde_wasm_bindgen.

Output

There are 5 levels of difficulty, these dictate the square dimensions for the output. The formulae for the square dimensions are (10 / difficulty) * 10 to get the amount of grid segments, and then divide the dimensions of the image by that amount. The output looks like this

Loading custom images

Because the original application works by fetching images via URLs we can load any public image that is CORS enabled. This is pretty cool since you don't have to be limited by the application's library.

Contributing

Please take a look at our contributing guidelines if you're interested in helping!

Pending Features

  • Saving the puzzle image
  • Generating a full puzzle piece (with the side thingies) and exporting to a CAD format for printing

Attribution

You might also like...
Core Temporal SDK that can be used as a base for language specific Temporal SDKs

Core SDK that can be used as a base for all other Temporal SDKs. Getting started See the Architecture doc for some high-level information. This repo u

An ownership model that is used to replace the Ring in Linux.

std-ownership An ownership model that is used to replace the Ring in Linux. It's 10x faster than Ring in Syscall. Overview The ownership system allows

A fast uuid generator in Python using Rust

ruuid A fast UUID generator for Python built using Rust. Its a simple wrapper on top of Rust's UUID crate. How to use? Installation: pip3 install ruui

Local-first linkspage generator

weird.one Local-first linkspage generator Usage You'll need Perseus and SurrealDB. Start the SurrealDB instance. surreal start -u root -p root --log d

Uniswap V4 Hooks Salt Generator

A lightweight library designed to generate precise salt values with the correct bits prefix for V4 hooks. Simplify your hook development with targeted, easy-to-integrate salt generation.

A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models you subscribe to on Onlyfans.

OF-notifier A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models

ARM TrustZone-M example application in Rust, both secure world side and non-secure world side

ARM TrustZone-M example application in Rust, both secure world side and non-secure world side; projects are modified from generated result of cortex-m-quickstart.

A mobile application platform for tertiary students to communicate, collaborate and share ideas with each other

Qreeket (pronounced "cricket") A mobile application platform for tertiary students to communicate, collaborate and share ideas with each other. As the

A sample Rust application modeled after Spring PetClinic.

Rust PetClinic Sample Application A sample Rust application modeled after Spring PetClinic. Overview This application uses axum and SeaORM on the serv

Owner
Nenad
Speaking and typing many languages. Alternate company profile @nenadlukic
Nenad
A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.

Zerokit A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments. Initial scope Focus on RLN

vac 44 Dec 27, 2022
Elton is a benchmark utility written in rust aimed to be used to benchmark HTTP calls.

Elton Elton is an HTTP Benchmark utility with options to be used within an HTTP interface. Installation Elton is currently available via Docker or by

Emil Priver 5 Sep 22, 2023
Rust 核心库和标准库的源码级中文翻译,可作为 IDE 工具的智能提示 (Rust core library and standard library translation. can be used as IntelliSense for IDE tools)

Rust 标准库中文版 这是翻译 Rust 库 的地方, 相关源代码来自于 https://github.com/rust-lang/rust。 如果您不会说英语,那么拥有使用中文的文档至关重要,即使您会说英语,使用母语也仍然能让您感到愉快。Rust 标准库是高质量的,不管是新手还是老手,都可以从中

wtklbm 493 Jan 4, 2023
Write Cloudflare Workers in 100% Rust via WebAssembly

Work-in-progress ergonomic Rust bindings to Cloudflare Workers environment. Write your entire worker in Rust! Read the Notes and FAQ Example Usage use

Cloudflare 1.3k Dec 29, 2022
Charted's email service built in Rust that can be connected via gRPC

email-service is a small microservice to help transfer emails towards other people without trying to implement it in different languages. This is used in charted-server for member invitations, passwordless authentication, and more.

charted 7 Mar 6, 2023
:crab: Small exercises to get you used to reading and writing Rust code!

rustlings ?? ❤️ Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This inclu

The Rust Programming Language 33.1k Jan 2, 2023
This project contains small exercises to get you used to reading and writing Rust code

rustlings ?? ❤️ Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This inclu

Cynthia Tran 1 May 24, 2022
An mdBook single PDF generator using pure Rust and some Node.js

mdbook-compress An mdBook backend renderer to generate a single PDF file for a full book. There are other similar projects, but most rely on chrome in

nxe 44 Jan 20, 2023
This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust to everyone.

Comprehensive Rust ?? This repository has the source code for Comprehensive Rust ?? , a four day Rust course developed by the Android team. The course

Google 5.2k Jan 3, 2023
🦀 Rust crate that allows creating weighted prefix trees that can be used in autocomplete

weighted_trie ?? Rust crate that allows creating weighted prefix trees that can be used in autocomplete Released API Docs Quickstart To use weigthed-t

Alexander Osipenko 8 Mar 1, 2023