While Klipper has been an enormous boon to the 3D printing community as a whole, it isn't without its faults. Philement has been conceived as a full-on replacement, but it will take quite awhile to get there. In the interim it may end up serving as a front-end to Klipper, a bit like Obico perhaps.
The main differentiator to address upfront is that a large chunk of the lower-level code has been written in C and specifically not Python. For so many reasons. To help make this go a little more quickly, various AI engines are being tasked to help out. It isn't written by AI, but written with the help of AI. If that distinction matters to anyone. If nothing else, this gives a degree of plausible deniability if there's something crazy going on in the code.
As for the name, it is a combination of terms like 'Phi' (referencing the number 500 among many other meanings), 'filament' (that's what 3D printing is primarily obsessed with), and 'element' (small pieces of something larger). The individual components of the project have been named after atomic elements, for example.
As far as progress reporting goes, well, there are likely 500 steps or more to be completed before anyone takes this project seriously. Some of those steps will yield useful tools that people can use, as is already the case. But it is an ambitious project with many items to complete, and many more that likely haven't even been added to the list yet.
This project has a number of, well, elements. Each is named after an element in the periodic table. Like elements in the real world, some of these will be hugely important while others may be relatively insignificant. Some will require thousands and thousands of developer hours and others not so much. And the effort applied to each will likely be equally unbalanced as the focus shifts among the different pieces needed to get this up and running.
Element | Status | Description |
---|---|---|
hydrogen | 🔨 | A websocket-equipped service, like Klipper+Moonraker combined. |
helium | 💡 | Everything database-related. |
lithium | 💡 | Web-based UI for desktops and larger systems. |
beryllium | 🏆 | Deals with everything gcode-related. |
boron | 💡 | Rhymes with Voron! Hardware database. Like Vorons. Or Troodons. |
carbon | 🏆 | Print fault detection, a bit like what Obico is for. |
nitrogen | 🔨 | LVGL-based UI for controllers and smaller systems. |
oxygen | 💡 | Notifications. |
fluorine | 💡 | Filament management system. |
neon | 💡 | Well, lighting, obviously. |
sodium | 💡 | An MMU and general MMU support. |
magnesium | 💡 | Print farm management tool. |
aluminum | 💡 | Home Assistant integration. |
silicon | 💡 | Printer experiment - Voron 2.4r2 without an MCU. |
phosphorus | 💡 | Printer experiment - Beltless printer. |
sulfur | 💡 | Printer experiment - Robotic arm printer. |
chlorine | 🔨 | TMS WEB Core project for the www.philement.com website. |
argon | 💡 | Filament extruder - recycle that waste plastic! |
potassium | 💡 | Power monitoring |
calcium | 💡 | Optimization Wizard - building on beryllium and boron |
💡 → Idea and Planning Stage 🔨 → Working on it 🏆 → Nowhere near done but... Check it out!
While this project is currently under active development, feel free to give it a try and post any issues you encounter. Or start a discussion if you would like to help steer the project in a particular direction. Early days yet, so a good time to have your voice heard. As the project unfolds, additional resources will be made available, including platform binaries, more documentation, demos, and so on.
There are countless tools, frameworks, coding styles, conventions, languages, and so on, that are readily available out in the world today. A big part of working on any project is selecting a suite of tools that can surface the best code in the least amount of time for the lowest cost given a particular pool of developer talent. When the number of developers is small, tool selection is often subject to the whims of the developers. This project is no exception.
- Uses GCC wherever possible, written to C17, usually with _GNU_SOURCE included as well.
- Should have a simple Makefile that can be run with 'make', 'make clean', and so on.
- Code should be tested on Linux/X86, Linux/x64, Linux/Arm, Windows/X64, macOS/x64, macOS/Arm.
- Code is often written with the help of AI LLMs and at a very low level to reduce dependencies.
- Try to avoid the way modern JS and Python projects are built with thousands of dependencies.
- Try to reuse code between projects where it makes sense, such as some of the network code.
- Prefer JSON rather than YAML or other file formats.
- Most of this has been done with TMS WEB Core and Delphi. It generates 100% HTML/CSS/JS.
- Should be tested on Firefox/Chrome/Safari on Linux/Windows/macOS, desktop and mobile.
- As these are web pages, they should run everywhere, not deliberately excluding anyone.
- Designed to be self-hosted without making any changes other than to configuration files.
- Try to stick to the same set of JavaScript libraries. Bootstrap. Tabulator. Etc.
- Prefer JSON rather than YAML or other file formats.
Last updated at 2024-08-11 20:23:52 UTC
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 35 1377 347 6842
Markdown 29 171 2 1897
C/C++ Header 26 164 40 543
Python 1 36 9 195
HTML 4 40 23 157
make 6 66 16 139
JSON 3 0 0 115
Bourne Shell 3 28 56 79
Text 1 0 0 75
Pascal 4 34 31 72
Delphi Form 2 1 0 66
CSS 2 3 2 38
YAML 2 8 13 37
JavaScript 1 3 0 25
-------------------------------------------------------------------------------
SUM: 119 1931 539 10280
-------------------------------------------------------------------------------
16 Files were skipped (duplicate, binary, or without source code):
jpg: 3
png: 3
dproj: 2
gitignore: 2
gitattributes: 1
ico: 1
js: 1
json: 1
license: 1
makefile: 1
If you find this work interesting, helpful, or valuable, or that it has saved you time, money, or both, please consider directly supporting these efforts financially via GitHub Sponsors or donating via Buy Me a Pizza. Also, check out these other GitHub Repositories that may interest you.