Analyze 3D printing files (STL, 3MF, GCODE, GX) to extract metadata like printer compatibility, layers, filament info, and slicer details
npm install @polar3d/file-analyzerAnalyze 3D printing files to extract metadata like printer compatibility, layer count, filament information, and slicer details.
- ✅ Multi-format support: STL, 3MF, GCODE, GX
- ✅ Printer detection: Identifies compatible printers (Bambu Lab, Prusa, Creality, etc.)
- ✅ Layer counting: Extracts layer count from sliced files
- ✅ Filament analysis: Detects colors (hex codes) and types (PLA, ABS, etc.)
- ✅ Slicer identification: Identifies which slicer created the file and version
- ✅ Multi-color detection: Determines if file requires multiple filaments
- ✅ Framework-agnostic: Works in browser and Node.js
- ✅ TypeScript: Full type definitions included
``bash`
npm install @polar3d/file-analyzer
`typescript
import { analyzeFile } from '@polar3d/file-analyzer';
const file = document.querySelector('input[type="file"]').files[0];
const result = await analyzeFile(file);
console.log(result);
// {
// fileType: '3mf',
// isSliced: true,
// printerInfo: [
// { name: 'X1 Carbon', brand: 'Bambu Lab' }
// ],
// layerCount: 245,
// filamentInfo: {
// isMultiColor: true,
// filamentCount: 3,
// colors: ['#FF0000', '#00FF00', '#0000FF'],
// types: ['PLA', 'PLA', 'PLA']
// }
// }
`
`typescript
import { analyzeFileDetailed } from '@polar3d/file-analyzer';
const result = await analyzeFileDetailed(file);
console.log(result);
// Includes all basic info plus:
// {
// fileSize: 15728640,
// slicerInfo: {
// name: 'Bambu Studio',
// version: '01.09.07.52'
// },
// ...
// }
`
`typescript
import { FileAnalyzer } from '@polar3d/file-analyzer';
const analyzer = new FileAnalyzer();
const result = await analyzer.analyzeFile(file);
`
- Bambu Studio - Full support
- PrusaSlicer - Full support
- OrcaSlicer - Full support
- SuperSlicer - Full support
- Ultimaker Cura - Full support
- FlashPrint (GX files) - Full support
- Slic3r - Basic support
- Bambu Lab (X1, P1, A1 series)
- Prusa Research (MK3, MK4, MINI, XL)
- Creality (Ender, CR, K1 series)
- Anycubic, Elegoo, FlashForge, Ultimaker, Artillery, and more
Analyzes a 3D printing file and returns basic metadata.
Returns:
`typescript`
{
fileType: 'stl' | '3mf' | 'gcode' | 'gx' | 'unknown';
isSliced: boolean;
printerInfo?: PrinterInfo[];
layerCount?: number;
filamentInfo?: FilamentInfo;
}
Returns detailed analysis including file size and slicer information.
Class for creating a reusable analyzer instance.
`typescript``
const analyzer = new FileAnalyzer();
await analyzer.analyzeFile(file);
await analyzer.analyzeFileDetailed(file);
await analyzer.isValidGcodeContent(file);
await analyzer.isValid3mf(file);
MIT © Polar3D
Built with ❤️ by Polar3D for the 3D printing community.