CSD
Status
| Field | Value |
|---|---|
| Extension(s) | .csd |
| Common ecosystem | Singer / Poem / legacy consumer workflows |
| Format family | Legacy machine file |
| Satin Studio status | Researching |
| Open / import | No |
| Export | No |
| Confidence | Low. |
What it is
CSD is a legacy consumer embroidery format encountered in older design collections and conversion lists.
Satin Studio direction
Research lead only.
Versions and variants
This entry is tracked as a format lead, but Satin Studio does not yet have a public version or dialect matrix for it. Real sample files with machine/software provenance are needed before support can be planned safely.
File identification notes
Brand, version, and byte behavior are uncertain.
Observed structure notes
- CSD has been observed with an eight-byte identifier followed by encoded thread and stitch data. Some readers derive a decode table from the first identifier byte or a fixed
0x0Cseed. - Observed layout after decoding: 16 RGB thread entries, two unknown bytes, a 14-entry color order table, then three-byte stitch records.
- In observed stitch records, byte 0 carries sign and control bits, byte 1 is Y magnitude, and byte 2 is X magnitude. Byte 0 values
0xF8,0x87, or0x91terminate the stream in observed readers.
Structure sketch
CSD is still uncertain, but observed encrypted/encoded files fit this high-level shape:
struct CsdCandidate<'a> {
identifier: [u8; 8],
encoded_threads: [u8; 16 * 3], // 16 RGB entries after decoding
unknown: [u8; 2],
color_order: [u8; 14],
records: &'a [CsdRecord], // decoded three-byte records
}
struct CsdRecord {
control_and_sign: u8, // bit 0x20 negates x; bit 0x40 negates y
y: u8,
x: u8,
}
What we still need
Sample files with provenance.