Coder Social home page Coder Social logo

spoolmandb's Introduction

SpoolmanDB

A centralized place to store information about 3D printing filaments and their manufacturers.

The database is hosted using GitHub Pages, you can browse it at: https://donkie.github.io/SpoolmanDB/

You can contribute to this database by adding/editing files and submitting pull requests in this repository.

Filaments

The source files are in the filaments folder. When this database is deployed, they will be expanded/compiled into a single JSON file called filaments.json.

To limit the amount of duplication needed in the source files, each combination of weight, color and diameter will be represented in the compiled JSON. For example, if you specify two diameters, two weights, and two colors, you will get eight combinations in the JSON. There isn't currently any way to exclude specific combinations; either you will have to live with the database having invalid entries or you can split up the filament object into multiple ones.

Source file fields

  • name - The product name. Should probably contain the format code {color_name} to automatically insert the color name.
  • material - The material name, e.g. PLA.
  • density - The density of the material in g/cm3.
  • weights - An array of objects with weight, spool_weight and spool_type fields. Specify multiple here if the manufacturer sells the filament in e.g. 1 kg and 5 kg spools. spool_weight is optional but recommended. spool_type is optional and can be any of "plastic", "cardboard" or "metal".
  • diameters - An array of diameters in mm. Specify multiple here if the manufacturer sells the filament in both e.g. 1.75 and 2.85 mm diameters.
  • extruder_temp (optional) - Manufacturer recommended extruder temperature in ยฐC.
  • bed_temp (optional) - Manufacturer recommended bed temperature in ยฐC.
  • finish (optional) - The finish of the filament, e.g. "matte" or "glossy". Only set this if the filament is designed with this in mind.
  • multi_color_direction (optional) - The direction of the multi-color filament, e.g. "coaxial" for a split/dual color filament, or "longitudinal" for a filament that changes color along its length.
  • pattern (optional) - Textured pattern, either "marble" or "sparkle" is currently supported. Feel free to add additional ones in the schema if necessary.
  • translucent (optional) - Boolean true/false if this filament is at least partially see-through.
  • glow (optional) - Boolean true/false if this filament has a glow-in-the-dark effect.
  • colors - An array of objects with name and hex fields. Name should be what the manufacturer calls it. Hex should be the hex code of the color, can include an alpha channel if it's a transparent color. If it's a multi-color filament, specify hexes instead of hex and provide a list of hex codes. You can also set the finish, multi_color_direction, pattern, translucent and glow fields here if the specific color is different from the others.

Materials

All materials are found in the materials.json file.

Source file fields

  • material - The material name, e.g. PLA.
  • density - The density of the material in g/cm3.
  • extruder_temp - General extruder temperature for this material.
  • bed_temp - General bed temperature for this material.

spoolmandb's People

Contributors

disane87 avatar donkie avatar dresende avatar keridos avatar m-klecka avatar stuserious avatar t3chguy avatar yanceya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

spoolmandb's Issues

Potential Database and Schema Updates - Filled filaments, temperature ranges, material field, alloy codes.

In the work to create entries for 3DXTECH filaments i ran across a few bits which could be addressed. I fully understand that making the database too complex is not desirable or actually beneficial to end users.

  • 3DXTECH use temperature ranges for extruder and bed temp. The JSON schema only allows for a single integer. It would be nice to be able to input two values indicating a temperature range recommended by the manufacturer. Alternatively we could have a min and max values for extruder/bed (less preferred I think as that creates two new fields and begs the questions of what to enter when only a single value is given by the manufacturer).

This probably doesn't matter as users set their own print temps through the slicer config and filament calibrations. For 3DXTECH filaments I just averaged the two band values. But this is not exactly correct, so it bothered me a little bit ๐Ÿฅฒ

  • I think we need a solution to deal with filled filaments. My initial suggestion is simply an optional "fill" parameter that is "null, glass fiber, carbon fiber". The material name could then be NAME {color_name} {fill}. Most of the 3DXTECH entries have fill material and that is important to call out. They way I implemented it feels a bit clunky have it as text "Carbon Fiber" in the name.

Also some guidance on how to deal with the material field text with regards to fill and alloys would be helpful:

  • For two filaments ABS and Carbon Fiber ABS should they both have material as ABS or should they be ABS and ABS-CF. My suggestion is to use the later as they are two difference materials and conforms to ISO 1043 marking standard.

  • In general polymer alloys should be designated as PC+ABS and not PC/ABS to conform to ISO 1043 marking standards. So a blend with fill would be PC+ABS-CF or PC+ABS-GF. This gives us a basis of why to do it this way.

RFC: Handling different spool weights for the same filament.

Hey there Donkie!
It's refreshing to finally see some real effort being put into a centralized database, I have been waiting for this for a long, long time.

I manage a 3D printing research lab and have access to and can contribute hundreds of spools from tens of manufacturers.
While working on my first pull request to add Formfutura filaments, I remembered that they sometimes sell different spools for the same filament and weight product.
As also seen in their technical spool information, they offer cardboard and plastic variants for the same product, each with different spool weights.

For example, the cardboard 2300g spool weighs ~265g, while the plastic 2300g one weighs ~600g.

I would like to hear opinions and suggestions on how to best handle such cases, as I've seen a steady rise in manufacturers providing cardboard spools as an eco-friendly option.

Thank you so much for all the work you're putting into all this, I look forward to contributing to the best of my ability!

RFC: handling of refillable spools

A lot of manufacturers like Formfutura, BambuLab, MatterHackers, Prusament and more, have started offering reusable material in the last few years.

The idea is that you only buy a spool once, and then use refill "cartridge" filament in that same spool over and over again.
This also means that users may have multiple, different materials but all with the same spool weight.

Do you think there should be any particular way or addition to allow for these types of spools?
for example, a "reusable spool" parameter for manufacturers that provide it so that any UI or client can implement the reusable feature?

Looking forward to hearing comments!

RFC: Transparency

We can currently only set translucent on filaments. However, PETG and especially PCTG are also offered as transparent.
Granted, it is not easy to print transparent prints, but they look different than translucent filaments.

Should a new flag called transparent be added?

Database Schema Refinements

As people have started entering more filaments into the database there are have been some important findings and questions on how to enter some filament specific information. There is also a question on whether this information is important to be included in the data base to allow for categorization.

The goal is to have a bit of architectural discussion, discover additional areas to cover, and hopefully make PRs for a stable JSON schema. It seems that continuously litigating JSON schema changes is risky for database stability, uncertainty for data entry, inconsistent data entry.

As defined on the readme page "A centralized place to store information about 3D printing filaments and their manufacturers." seems to imply, to me, that we are looking for a detailed database with lots of categories and details of filaments. However, this type of detailed database doesn't necessarily align with the core needs of a maker using Spoolman to catalog and maintain their physical spool library and support actual 3D printing.

A non exhaustive list of open questions:

Fills [see https://github.com//pull/21 ]

  • How should we handle filled filaments with carbon fibre and glass fibre. Other less popular and uncommon fills include wood, ceramics, kevlar, carbon/glass string, glow particles, metallic fill, glitter.
  • Carbon and Glass fiber fills can also be specified in the % of fill and average fiber length.

Glitter [see https://github.com//issues/31 ]

  • Glitter is a technically a cosmetic fill.
  • Glitter comes in different colors which provide various cosmetic affects.
  • As far as i know there are no specifics for glitter size or type as it generally is not considered a benefit to physical properties.

Refillable Spools [ https://github.com//issues/26 ]

Material Names [ https://github.com//pull/15 , https://github.com//pull/9 ]

  • Material names ideally should be presented at short names conforming to ISO 11469 and ISO 1043
  • Material short names ABS are preferred over the long name "Acrylonitrile Butadiene Styrene" for obvious reasons.
  • Can the material name be overloaded to capture other parameters that otherwise would be their own category (tpu hardness, fill, glitter, lightweight).

Distinctive filament properties

  • There are some filaments with unique characteristics such as Aero/Lightweight
  • Anything on Zack Freedmans cursed filaments list, scented
  • Purge, cleaning filaments
  • ESD or conductive filaments
  • Filaments with flame retardant additives to meet V-0 or similar ratings.
  • Recycled filaments
  • Support filaments (breakaway, water soluble)
  • Chocolate / foods

Nylons or Polyamides [ https://github.com//pull/15 ]

  • Nylons come in so many flavors (PA6, PA66, PA6.6, PA11, PA12, PA612....)
  • Specific standard ISO 16396 to deal with material marking of these materials
  • Only a few nylons are actually used in 3d printing (currently) PA6 and PA12

TPU:

  • TPU come in different hardness across different scale ratings. This is a key parameter defining their function.
  • Currently the guidance is to overload the material name to include the hardness rating "TPU-90A"

References:

https://www.findoutaboutplastics.com/2020/12/plastic-part-marking-overview-codes-and.html
https://drive.google.com/file/d/1fIG9HlW-9AiyGDQsstiNUaXkKw-1Cyle/view

PSA: list of known spool & filament databases

WIP!

List of spool and filament databases

Spools






RFC: Glitter Filaments, how to define colors

Das Filament has some Glitter based filaments (#28) like this here: https://www.dasfilament.de/filament-spulen/pla-1-75-mm/405/pla-filament-1-75-mm-blue-pearl-800-g?c=33

It consists of black PLA filled with blue glitter. Technically it is multicolor but the current multicolor filaments needs an info how the color is spread. It is neither longitudinal, nor split in this case.

How should these Types of filament be defined. We could add glitter or another modifier to the color spread info. Or we could defined filled filament types another way. But that should preserve the info about the two colors (base + glitter).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.