stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Wirenux

@Wirenux

Joined June 6th, 2026

  • 180Devlogs
  • 10Projects
  • 13Ships
  • 168Votes
A french teen :yay: https://github.com/wirenux
Ship Pending review

Quantik v1.0.0 - A Molecule 3D Viewer with no 3D engine

What is this ?

Quantik is a Molecule 3D Viewer built in Rust. You open a .sdf file (or pick a built-in molecule), and you can rotate it, zoom, pan, and hover every atom to see its info.
And the fun part: there is no 3D engine and no GPU code. Everything (the projection, the depth buffer, the lighting, the triangle filling) is done by hand on the CPU, and the pixels are just sent to a window with minifb ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧

Why ( °ヮ° ) ?

I had 3 reasons: I wanted a 3D molecule viewer that my teacher could use in class, I wanted to really learn how 3D works in depth (so I did it from scratch), and I wanted to use it myself for homework, because most of this kind of software is Windows-only and I use a mac.

Core Features ( ദ്ദി ˙ᗜ˙ )

Viewer

  • Atoms as spheres and bonds as cylinders (double and triple bonds are drawn as parallel cylinders)
  • CPK colors and real van der Waals radii
  • Orbit camera with mouse and keyboard, plus auto rotate
  • Hover an atom to see its name, radius and molar mass
  • Info panel with the name, formula, number of atoms, number of bonds and total molar mass

Software Renderer

  • Depth buffer, back-face culling, key + fill lighting
  • SSAA anti-aliasing: low quality while you move the camera, 3x when you stop
  • Redraw on demand: the scene is only re-rendered when something changed
  • Atom ID buffer: each pixel remembers which atom drew it, that’s how hovering works

Molecule Loading

  • Open any .sdf file with a native file dialog
  • Built-in examples: Water, Methane, Ammonia, Benzene and Ethanol
  • Auto framing: the camera is placed from the size of the molecule

What was challenging ?

Getting the 3D maths right without an engine was the hardest part: projecting the points, filling the triangles, and making the depth correct with perspective. Also, doing everything on the CPU is slow, so I had to be smart: a low quality render while the camera moves, a high quality one when it stops, and only redrawing when something changed. After that I split the whole project into modules (render, mesh, camera, molecule, ui…) because it was getting hard to read ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧

What are you proud of ?

I’m proud that the whole 3D pipeline is mine, and that it is actually useful: my teacher can use it in class, and it runs on macOS, Windows and Linux without any 3D engine or GPU.

What should people know so they can test your project ?

  • Go to the GitHub Release and download the version for your OS
  • macOS: the app is not signed (I don’t have an Apple Developer account 🥲), so run xattr -cr /Applications/Quantik.app in the Terminal after you put it in Applications
  • Windows: SmartScreen may warn you, click More info then Run anyway
  • Launch Quantik, then use File > Open... (Cmd/Ctrl+O) to load an .sdf file, or Examples > Show list (Cmd/Ctrl+E) and press 1-9

Things to try

  • Load the Water example
  • Hover an atom to see its info
  • Press Space to make the molecule spin, then - / = to change the speed
  • Rotate the camera and stop: watch the image get smoother
  • Download a molecule as .sdf (for example the Caffeine one from PubChem) and open it

Thank you

Just a little thank you ❤️
(Everything you need is probably in the README.md)

  • 5 devlogs
  • 24h
Try project → See source code →
Open comments for this post

1h 31m 2s logged

Devlogs Nº5 - The last one :D

So in this little devlog I had done quite a lot :

  • The README.md is now created
  • The released has been published :yay:
  • All the binary has been build

Now the next step is to write the Ship :yay:

BYE :byee:

0
0
33
Open comments for this post

6h 35m 14s logged

Devlogs Nº4

Ok so… 🎵 it’s been sooo looonnnngg 🎵…

In the last 6h30 I’ve done kinda lot of things like those :

  • A start screen who tell you open a file or an example molecule :neocat_science:
  • A little box in the top left corner for all the information on the molecule (like the formula, the molar mass etc…) ℹ️
  • Fixed some bug with the bonds rendering 🐛
  • Added a example menu with built-in molecule (so you don’t have to download a .sdf file) :menu:
  • Anti-aliasing (SSAA) when moving the camera the SSAA is reduced to not hurt the performance but when stop moving the SSAA quality go up
  • Added my username on the home screen :homeassistant:
  • Created a logo with the help of @c3a5m7 (on youtube)
  • A VERY BIG reorganization in the whole project to make the project more clear with separated part, like the maths part, and the ui part etc… 🧹
0
0
68
Open comments for this post

4h 54m 1s logged

Devlogs Nº3

In this devlogs I have done a lot of little things like those : :yay: :sho:

  • A file opener at start of the app :file-explorer:
  • A tooltip for each atoms with : Name, Symbol, Radius and Molar Mass
  • New molecule like: cocaine, vitamin C, etc…
  • With CMD+O / CTRL+O it’s open a file explorer (on windows, macOS and Linux) :files-dev:
  • A new macOS and windows menu for shortcuts :shortcuts:
  • Space to make the molecule rotate automatically :rotatingparrot:
  • + and - key can now modify the speed of auto rotate :speed:
  • R reset the camera position
  • Pan movement to move the camera position (x, y, z) :blobby-camera:
  • Fix some bugs :orpheus-fixing-bugs:
0
0
55
Open comments for this post

4h 2m 5s logged

Devlogs Nº2

So in 4 hours a lot has been done :yay: :yippeee: .
Basically I finished all the Math part :yippeeyay: . And here is a list of everything I added:

  • A new camera control, the Orbital camera (like in 3D CAD software or KSP)
  • A scroll limit based on the farthest atom from the center
  • A SDF parser (to display each atoms and bounds via a single file) :nice100: So you can import every molecule you want !
  • Some optimization :perfect:
  • Now atoms have colors (if the atom don’t have a implemented color it will just be a bright magenta) and different radius (like in the vdm representation) 🎨
  • A way BETTER lightning system :light-prism: (now you don’t even see the “edge of the UV sphere and the cylinder)
  • A new file structure
  • The name of the molecule in the title bar (and if there is no name in the custom array it just print his CID)

Here are some picture of it. In this picture there is water (H2O) and caffeine (which is way more complex)

0
0
62
Open comments for this post

7h 2m 44s logged

Devlogs Nº1

So… Yeah this is a pretty big devlogs, and the first one :yay: In this project I will create an app to see molecule in 3D all from scratch.

From the software rasterizer to the .SDF file parser and a lot more.

So in this devlogs I added a lot of the 3D basic of the program. Firstly I tried rendering the Vertex (3D point) of a cude then the triangle and fill the triangle. And redo the same with the UV Sphere and Cylinder (the uv sphere will be the atoms and the cylinder the bonds).

The color of each “object” can be changed quite easly. I also added basic ambient lighting.

I have also done a LOT of optimization (since this run on the CPU)

0
0
21
Ship

DMGTile v2 - GPUI Rewrite

This version is a full rewrite of the UI (and some other functionality) with GPUI (the framework that Zed use).

I kept every feature from the v1, 128-tile projects, undo/redo, copy/paste/cut, .dmgtile save/load, .bin and .c export, all the drawing tools.

And rebuilt the interface from scratch with a pixel-art aesthetic: pixelated corner on every panel, a pixel font, and cached GPU textures for thumbnails and previews.

What I added in this version ?

  • Toast notifications for save, export, and error feedback
  • Native macOS menu bar with File / Edit / Help, plus a matching in-window bar on Windows and Linux
  • Real app icon
  • Optimized tile list that only renders visible tiles, so scrolling stays smooth

I also added the toast notification (compared to V1)

The app is now more macOS compliant, I was able to add the top bar with the classic : File, Edit, View, Help etc… I was also able to put a icon !

What can I do now ?

Everything you need to know is in the README.md or in the GitHub Release

This might sound like a little update but the rewrite took me around 17 hour so…… thank you for reading ❤️

(I even made a cute little icon :D )

  • 9 devlogs
  • 16h
  • 11.12x multiplier
  • 183 Stardust
Try project → See source code →
Open comments for this post

56m 29s logged

This is the last devlogs for DMGTile. AKA the V2 Release :yay: :yippeee: . I modified the README for the GPUI version, made the github release and last minutes fix. Bye bye :byee:

0
0
103
Open comments for this post

1h 41m logged

After 1h40 of headache I FINNALY added a menu bar to Linux and Windows :yippeee: .

At first I wanted to use gpui-components but there was way to much issue with it so I build my own bar (in the same style as the whole app)

I even created a quick Dockerfile to test on my mac the linux build.

I also added the export to .c and .bin

0
0
49
Open comments for this post

2h 34m 19s logged

In those 2h30 I’ve done a lot of thing :big-eyes:

The most of it was optimization with the Tile List Rendering and Caching but I also rearrange all the code (before it’s was just a big main.rs file) And I added Save, Open & New Project and clean a little bit :yay: :yippeee:

0
0
42
Open comments for this post

1h 3m 33s logged

This is a short update because I fix some little bug like : :little_autism_creature: :yay:

  • Alignment on the tile list (with the number)
  • Not getting the little shortcut sign on macOS

And I added:

  • Toast notification style with error color or success color
0
0
56
Open comments for this post

1h 59m 39s logged

In 2 hours I added 2 big thing :yep:

  • The Copy/Paste/Cut integration
  • The tool bar
  • Icon for the toolbar

The icon was pretty long to make (because i suck at drawing… :heavysob: ) And implementing the tool bar too.

Here are some picture of the icon and the toolbar

(I use Aseprite btw)

0
0
37
Open comments for this post

28m 13s logged

This is a very very little update :shy: I added the same tools as in the EGUI version : Shift (Left, Right, Down, Up) and Rotate (it wasn’t difficult at all)

0
0
19
Open comments for this post

5h 21m 54s logged

A Lot of thing happen in 5h20 :wtff: :yay:

I create a custom UI with Game Boy related color, custom button, border, font, etc…

For now I have the drawing zone, the preview, the tiles list, the shade selector and tools

To be more specific I added rounder pixelated shade selector, rounded pixelated border, Undo, Redo, Draw/bucket tools

0
0
45
Open comments for this post

33m 8s logged

Little update : I added the Shade selector and the palette selector, but also the Early GameBoy font ! And I think it look nice :yay:

0
0
25
Open comments for this post

1h 49m 25s logged

I just discovered gpui it’s a UI library based on the GPU. It was created by the same team that make Zed (the code editor). And I found out that it very personalizable. So I am rewriting DMGTile in it :yay: . So far I have the basic grid and basic tools like the bucket, the pencil, eraser etc… The only problem is that I can’t track the right click drag. (I also got the native macOS toolbar)

0
0
21
Ship

What is this ?

DMGTile is a Gameboy Tile Editor/Designer build in Rust. Basically it’s a drawing program for Gameboy game.

Why ( °ヮ° ) ?

The idea for this project came from GBTD (Gameboy Tile Designer), who is Windows only and kinda old… So I recreated it from-scratch in Rust, so it can run on Linux, Windows & macOS without Wine (or equivalent). And all of this with the same features as GBTD.

Core Features ( ദ്ദി ˙ᗜ˙ )

Editor

  • Pixel Painting: Use the mouse to paint ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧
  • Bucket Fill: A classic flood-fill tool
  • Transform Tools: You can flip, rotate, move the active tile
  • Live Previews: A little 4x4 grid to preview the active tile in a pattern (e.g: a background)
  • Cached Texture Rendering: Tile textures are cached and only rebuilt when a tile is modified

Project Management

  • Multi-Tile Support: You can draw up to 128 tiles per project file (you can scroll the list on the right of the screen to change tile)
  • Undo/Redo: Each action is store in a stack, so you are able to undo or redo an action !
  • Copy/Paste/Cut: Duplicate or move tile data between slots (in the same project)
  • File Format: Each project is saved in .dmgtile (JSON), storing only the modified tiles while preseving the tiles ID
  • Keyboard Shortcut: Full Cmd/Ctrl support for New Project, Open, Save, Undo, Redo, etc… Even the tools have there own shortcut

Export

  • .bin Export: Exports all the modified tiles into the Gameboy’s native 2bpp format
  • .c Export: Exports all the modified tiles as a C array, with configurable array name (Can be used with GBDK)
  • Selective export: Only the modified tiles are written out

Okay… but how to test it ?

There is multiple way to test DMGTile but the easiest is to go to the Github Release and download the program for your OS ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧

Then you can launch it and start drawing ! You can also try the export part to a .bin or .c file (you can see the note.md file on github, it’s my personal note when I was building DMGTile)

Thank you

Just a little thank you ❤️

(Every things you need is probably in the README.md)
(I even made a cute little icon :D )

  • 12 devlogs
  • 15h
  • 13.92x multiplier
  • 211 Stardust
Try project → See source code →
Open comments for this post

1h 9m 42s logged

This might be the last devlogs before Ship Nº1 :yay:

After wayyyy to much time the macOS, Windows and Linux build are ready ! Apple GateKeeper and windows Defender don’t like my application 😭 they both flag as something weird / virus… I also realize that my Linux build wasn’t working so I fix it !

I released v1.0.0 :yippeee: ! I added those warning about Windows Defender and Apple GateKeeper !

I also added the --dev flag to get the dev menu and finished the README.md

0
0
74
Loading more…

Followers

Loading…