Asset Formats

Introduction
There are many asset types in OpenSimulator (e.g. notecards, sounds, textures). Each of these has its own distinctive format.

On the whole, asset formats are identical to those used by the Second Life system, since they need to be sent to and understood by a second life client. However, some are unique to OpenSimulator, in particular the object/prim serialization format.

Object/prim serialization formats
There are currently two object formats in OpenSimulator - 'xml' and 'xml2'. These are semantically identical and physically almost identical - by a sad quirk of fate slightly different formats are used for different purposes (e.g. serialization to asset store and storage in OAR files).

XML format
Here's an example

   false  57956c4b-ff2e-4fc1-9995-613c6256cc98   b06d2e45-650e-4e5d-a08a-b03a6dd67bff  0  b06d2e45-650e-4e5d-a08a-b03a6dd67bff</UUID> </UUID> <LocalId>2094307979</LocalId> <Name>Companion cube</Name> <Material>3</Material> <PassTouches>false</PassTouches> <RegionHandle>1099511628032000</RegionHandle> <ScriptAccessPin>0</ScriptAccessPin> <GroupPosition> <X>81.85081</X> <Y>157.5245</Y> <Z>21.32862</Z> </GroupPosition> <OffsetPosition> <X>0</X> <Y>0</Y> <Z>0</Z> </OffsetPosition> <RotationOffset> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </RotationOffset> <Velocity> <X>0</X> <Y>0</Y> <Z>0</Z> </Velocity> <AngularVelocity> <X>0</X> <Y>0</Y> <Z>0</Z> </AngularVelocity> <Acceleration> <X>0</X> <Y>0</Y> <Z>0</Z> </Acceleration> <Description/> <Color> <R>0</R> <G>0</G> <B>0</B> <A>255</A> </Color> <Text/> <SitName/> <TouchName/> <LinkNum>0</LinkNum> <ClickAction>0</ClickAction> <Shape> <ProfileCurve>1</ProfileCurve> <TextureEntry>iVVnRyTLQ+2SC0fK7RVGXwAAAAAAAAAAgD8AAACAPwAAAAAAAAAAAAAAAAAAAA==</TextureEntry> <ExtraParams>AA==</ExtraParams> <PathBegin>0</PathBegin> <PathCurve>16</PathCurve> <PathEnd>0</PathEnd> <PathRadiusOffset>0</PathRadiusOffset> <PathRevolutions>0</PathRevolutions> <PathScaleX>100</PathScaleX> <PathScaleY>100</PathScaleY> <PathShearX>0</PathShearX> <PathShearY>0</PathShearY> <PathSkew>0</PathSkew> <PathTaperX>0</PathTaperX> <PathTaperY>0</PathTaperY> <PathTwist>0</PathTwist> <PathTwistBegin>0</PathTwistBegin> <PCode>9</PCode> <ProfileBegin>0</ProfileBegin> <ProfileEnd>0</ProfileEnd> <ProfileHollow>0</ProfileHollow> <State>0</State> <ProfileShape>Square</ProfileShape> <HollowShape>Same</HollowShape> <SculptTexture> 00000000-0000-0000-0000-000000000000</UUID> </SculptTexture> <SculptType>0</SculptType> <SculptData/> <FlexiSoftness>0</FlexiSoftness> <FlexiTension>0</FlexiTension> <FlexiDrag>0</FlexiDrag> <FlexiGravity>0</FlexiGravity> <FlexiWind>0</FlexiWind> <FlexiForceX>0</FlexiForceX> <FlexiForceY>0</FlexiForceY> <FlexiForceZ>0</FlexiForceZ> <LightColorR>0</LightColorR> <LightColorG>0</LightColorG> <LightColorB>0</LightColorB> <LightColorA>1</LightColorA> <LightRadius>0</LightRadius> <LightCutoff>0</LightCutoff> <LightFalloff>0</LightFalloff> <LightIntensity>1</LightIntensity> <FlexiEntry>false</FlexiEntry> <LightEntry>false</LightEntry> <SculptEntry>false</SculptEntry> </Shape> <Scale> <X>0.5</X> <Y>0.5</Y> <Z>0.5</Z> </Scale> <SitTargetOrientation> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </SitTargetOrientation> <SitTargetPosition> <X>0</X> <Y>0</Y> <Z>0</Z> </SitTargetPosition> <SitTargetPositionLL> <X>0</X> <Y>0</Y> <Z>0</Z> </SitTargetPositionLL> <SitTargetOrientationLL> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </SitTargetOrientationLL> <ParentID>0</ParentID> <CreationDate>1325896997</CreationDate> <Category>0</Category> <SalePrice>0</SalePrice> <ObjectSaleType>0</ObjectSaleType> <OwnershipCost>0</OwnershipCost> <GroupID> 00000000-0000-0000-0000-000000000000</UUID> </GroupID> <OwnerID> 57956c4b-ff2e-4fc1-9995-613c6256cc98</UUID> </OwnerID> <LastOwnerID> 57956c4b-ff2e-4fc1-9995-613c6256cc98</UUID> </LastOwnerID> <BaseMask>2147483647</BaseMask> <OwnerMask>2147483647</OwnerMask> <GroupMask>0</GroupMask> <EveryoneMask>0</EveryoneMask> <NextOwnerMask>2147483647</NextOwnerMask> <Flags>None</Flags> <CollisionSound> 00000000-0000-0000-0000-000000000000</UUID> </CollisionSound> <CollisionSoundVolume>0</CollisionSoundVolume> <TextureAnimation/> <ParticleSystem/> <PayPrice0>-2</PayPrice0> <PayPrice1>-2</PayPrice1> <PayPrice2>-2</PayPrice2> <PayPrice3>-2</PayPrice3> <PayPrice4>-2</PayPrice4> </SceneObjectPart> </RootPart> <OtherParts/> </SceneObjectGroup>

XML2 format
Here's the same object as above, but in 'XML2' format.

<SceneObjectGroup> <SceneObjectPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> false</AllowedDrop>  57956c4b-ff2e-4fc1-9995-613c6256cc98</UUID> </CreatorID>  b06d2e45-650e-4e5d-a08a-b03a6dd67bff</UUID> </FolderID> 0</InventorySerial>  b06d2e45-650e-4e5d-a08a-b03a6dd67bff</UUID> </UUID> <LocalId>2094307979</LocalId> <Name>Companion cube</Name> <Material>3</Material> <PassTouches>false</PassTouches> <RegionHandle>1099511628032000</RegionHandle> <ScriptAccessPin>0</ScriptAccessPin> <GroupPosition> <X>81.85081</X> <Y>157.5245</Y> <Z>21.32862</Z> </GroupPosition> <OffsetPosition> <X>0</X> <Y>0</Y> <Z>0</Z> </OffsetPosition> <RotationOffset> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </RotationOffset> <Velocity> <X>0</X> <Y>0</Y> <Z>0</Z> </Velocity> <AngularVelocity> <X>0</X> <Y>0</Y> <Z>0</Z> </AngularVelocity> <Acceleration> <X>0</X> <Y>0</Y> <Z>0</Z> </Acceleration> <Description/> <Color> <R>0</R> <G>0</G> <B>0</B> <A>255</A> </Color> <Text/> <SitName/> <TouchName/> <LinkNum>0</LinkNum> <ClickAction>0</ClickAction> <Shape> <ProfileCurve>1</ProfileCurve> <TextureEntry>iVVnRyTLQ+2SC0fK7RVGXwAAAAAAAAAAgD8AAACAPwAAAAAAAAAAAAAAAAAAAA==</TextureEntry> <ExtraParams>AA==</ExtraParams> <PathBegin>0</PathBegin> <PathCurve>16</PathCurve> <PathEnd>0</PathEnd> <PathRadiusOffset>0</PathRadiusOffset> <PathRevolutions>0</PathRevolutions> <PathScaleX>100</PathScaleX> <PathScaleY>100</PathScaleY> <PathShearX>0</PathShearX> <PathShearY>0</PathShearY> <PathSkew>0</PathSkew> <PathTaperX>0</PathTaperX> <PathTaperY>0</PathTaperY> <PathTwist>0</PathTwist> <PathTwistBegin>0</PathTwistBegin> <PCode>9</PCode> <ProfileBegin>0</ProfileBegin> <ProfileEnd>0</ProfileEnd> <ProfileHollow>0</ProfileHollow> <State>0</State> <ProfileShape>Square</ProfileShape> <HollowShape>Same</HollowShape> <SculptTexture> 00000000-0000-0000-0000-000000000000</UUID> </SculptTexture> <SculptType>0</SculptType> <SculptData/> <FlexiSoftness>0</FlexiSoftness> <FlexiTension>0</FlexiTension> <FlexiDrag>0</FlexiDrag> <FlexiGravity>0</FlexiGravity> <FlexiWind>0</FlexiWind> <FlexiForceX>0</FlexiForceX> <FlexiForceY>0</FlexiForceY> <FlexiForceZ>0</FlexiForceZ> <LightColorR>0</LightColorR> <LightColorG>0</LightColorG> <LightColorB>0</LightColorB> <LightColorA>1</LightColorA> <LightRadius>0</LightRadius> <LightCutoff>0</LightCutoff> <LightFalloff>0</LightFalloff> <LightIntensity>1</LightIntensity> <FlexiEntry>false</FlexiEntry> <LightEntry>false</LightEntry> <SculptEntry>false</SculptEntry> </Shape> <Scale> <X>0.5</X> <Y>0.5</Y> <Z>0.5</Z> </Scale> <SitTargetOrientation> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </SitTargetOrientation> <SitTargetPosition> <X>0</X> <Y>0</Y> <Z>0</Z> </SitTargetPosition> <SitTargetPositionLL> <X>0</X> <Y>0</Y> <Z>0</Z> </SitTargetPositionLL> <SitTargetOrientationLL> <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </SitTargetOrientationLL> <ParentID>0</ParentID> <CreationDate>1325896997</CreationDate> <Category>0</Category> <SalePrice>0</SalePrice> <ObjectSaleType>0</ObjectSaleType> <OwnershipCost>0</OwnershipCost> <GroupID> 00000000-0000-0000-0000-000000000000</UUID> </GroupID> <OwnerID> <UUID>57956c4b-ff2e-4fc1-9995-613c6256cc98</UUID> </OwnerID> <LastOwnerID> <UUID>57956c4b-ff2e-4fc1-9995-613c6256cc98</UUID> </LastOwnerID> <BaseMask>2147483647</BaseMask> <OwnerMask>2147483647</OwnerMask> <GroupMask>0</GroupMask> <EveryoneMask>0</EveryoneMask> <NextOwnerMask>2147483647</NextOwnerMask> <Flags>None</Flags> <CollisionSound> <UUID>00000000-0000-0000-0000-000000000000</UUID> </CollisionSound> <CollisionSoundVolume>0</CollisionSoundVolume> <TextureAnimation/> <ParticleSystem/> <PayPrice0>-2</PayPrice0> <PayPrice1>-2</PayPrice1> <PayPrice2>-2</PayPrice2> <PayPrice3>-2</PayPrice3> <PayPrice4>-2</PayPrice4> </SceneObjectPart> <OtherParts/> </SceneObjectGroup>