Quote:
Originally Posted by jhowell
More notebook examples would help. Having examples of simple drawings, such as a single dot or straight line, would be useful in decoding how drawing data is stored. Seeing the .notebook files associated with annotated documents would also help fill in the gaps.
I am surprised by what we have found so far. I expected the Scribe to store something like SVG (scalable vector graphics). Instead it is keeping lower level data, like pen tilt and pressure, as binary data.
Spoiler:
Code:
'nmdl.stroke_bounds': [3123, 4448, 3447, 4707],
'nmdl.color': 0,
'nmdl.brush_type': 7,
'nmdl.random_seed': 0,
'nmdl.thickness': 23.625,
'nmdl.type': 'nmdl.stroke',
'nmdl.stroke_points': {
'nmdl.thickness_adjust_factor': {{
AQFMAQAAFERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERGQ=
}},
'nmdl.density_adjust_factor': {{
AQFMAQAAFERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERGQ=
}},
'nmdl.num_points': 332,
'nmdl.position_x': {{
AQFMAQAAHV1ubdRERETW1NVERE1dRdReVE1URNXVTVRU1EXV1EREREREREVNXUVNXURdRURF3V1URERd
1UXVREXUbURERNVEVNREVNRdVE1URE1URNVNVERNXV1FRdRdRU1dVERUTV1ERF1FRE5dVNRF1F1ETVRN
VERF1ERdRERdXV1NRF1NXV3VTV1NXVRN1U1U1dVF1ERdXV1FRNVETVTU1URF1UVF1UVF1rQ=
}},
'nmdl.position_y': {{
AQFMAQAAFF1ERU1ERERF1NbURF1ERURERE1V1EXV1ERF5V5URNVF1dXURF1ERF1ERdRF5URERERETVRE
RERERURF1URERE1E1V1dRNVEXUREXURdXdRdRU1F1ERETW1E1dXV1E1dVE1eVEREXUXV5URdRERERdRE
1dREXURETV1URE1dVERERF1dRNRd1dVETV1ERF1G1FXVREREXVREXW5U1URE1d1F3V5e3RI=
}},
'nmdl.pressure': {{
AQFMAQAAFV1NcZGU3heUSfGRlJ7vYZTZHmkdVJ9FcWdUT01PV5bpGe9E0fVO1HUZGWTX4e5pHfleZpTd
3V9JcZdeHVXU1fTUbW1OfWfk15Xk1k1k3lQdTX5dTUREQZTZFGQZVPfk5U1uVuRGQZfZHlcZafHm5W8f
Zd51VOftTd15VZFlVn0UdEkd7f/V9E517fXdVUfU3Wkd1pbxnVnflGndkfT+mZmRkRERGR13PQofJCgE
FR4cFgUEBAQEBAQEBAUEBAQEBQUEBAUFBAQEBQQFBQQEBAQGBQgGBQYGBQQJBAcFBAUEBAQEBAQEBgQI
BAUGBQQFPpcXZwYGCwUvLCAH
}},
'nmdl.tilt_x': {{
AQFMAQAAJEREQZRERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERBlEREREREREREREREREREREREgNZGRkZA==
}},
'nmdl.tilt_y': {{
AQFMAQAAJBlEQZRERERERBlERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
REREkURERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERESRRERERERERERERERBlERERERERERERERERERERERGwHZGTIyGRk
ZGTIyMjI
}},
},
I have never worked on software for digitizing drawings so I am unfamiliar with the data structures and APIs typically used in that field. Perhaps someone familiar with drawing devices could suggest a documented data format that would be suitable for exporting Scribe drawings.
I do know that some work has been done to reverse engineer the internal data formats used by reMarkable tablets. That might be worth looking into.
I could not find anything relevant online about "NMDL". I am assuming that it is an acronym made up by Amazon. The phrase "note model" appears often in the Scribe firmware. That might be the source of "NM".
|
The actual NMDL data itself:
Quote:
|
AQFMAQAAFERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERGQ=
|
Seems to be base64 encoded binary... unfortunately since it's encoded binary even after decoding it's not exactly easy to understand...