AURA

JSGG

AuraJS
DOCSEXAMPLESGITHUB
Draw2D, Assets, Audio, Storage, and Math Exact Reference
Narrow exact-reference page for draw2d, content loading, audio, storage, fs, math, and value helpers.
docs/reference/draw2d-assets-audio-storage-and-math-exact-reference.md

Draw2D, Assets, Audio, Storage, and Math Exact Reference

Use this page when the task is about drawing, loading content, saving state, or using the core value and math helpers.

Table of Contents

  1. Covers
  2. Open These Handbook Pages First
  3. Canonical Contracts
  4. Namespace Coverage Summary
  5. Namespaces

Covers

  • aura.draw2d
  • aura.assets
  • aura.audio
  • aura.storage
  • aura.math
  • Top-Level Utilities

Open These Handbook Pages First

Canonical Contracts

Namespace Coverage Summary

Namespace Exact Signatures Additional Method Names Native Web
aura.draw2d 29 11 supported supported
aura.assets 8 7 supported supported
aura.audio 26 8 supported unsupported
aura.storage 4 0 supported supported
aura.math 5 1 supported supported
Top-Level Utilities 30 0 supported see_web_build_contract_v1

Namespaces

`aura.draw2d`

Immediate-mode 2D drawing primitives (shapes, sprites, text, transforms).

  • Native support: supported
  • Web support: supported
  • Exact signatures in generated schema: 29
  • Additional known method names: 11
  • Contract source: api-contract.md

Exact Signatures

aura.draw2d.circle(x: number, y: number, radius: number, color: Color): void
aura.draw2d.circleFill(x: number, y: number, radius: number, color: Color): void
aura.draw2d.clear(color: Color): void
aura.draw2d.createRenderTarget(width: number, height: number): { ok: boolean, reasonCode: string, handle?: number, width?: number, height?: number, type?: "renderTarget", __renderTarget?: true }
aura.draw2d.destroyRenderTarget( target: number | { handle: number, __renderTarget?: true } ): { ok: boolean, reasonCode: string, handle?: number, destroyed?: boolean }
aura.draw2d.exportRenderTarget( target: | number | { handle: number, __renderTarget?: true } | { type: "compositorStage", graph: string, stage: string }, path: string ): { ok: boolean, reasonCode: string, handle?: number, path?: string, graphName?: string, stage?: string }
aura.draw2d.line(x1: number, y1: number, x2: number, y2: number, color: Color, width?: number): void
aura.draw2d.measureText(str: string, options?: TextMeasureOptions): { width: number, height: number }
aura.draw2d.nineSlice( image: Asset, x: number, y: number, width: number, height: number, options: { slice?: number, left?: number, right?: number, top?: number, bottom?: number, tint?: Color, alpha?: number } ): void
aura.draw2d.popClipRect(): { ok: boolean, reasonCode: string }
aura.draw2d.popTransform(): void
aura.draw2d.pushClipRect( rect: { x?: number, y?: number, width: number, height: number } ): { ok: boolean, reasonCode: string }
aura.draw2d.pushClipRect( x: number, y: number, width: number, height: number ): { ok: boolean, reasonCode: string }
aura.draw2d.pushTransform(): void
aura.draw2d.rect(...)
aura.draw2d.rect(x: number, y: number, w: number, h: number, color: Color): void
aura.draw2d.rectFill(x: number, y: number, w: number, h: number, color: Color): void
aura.draw2d.resizeRenderTarget( target: number | { handle: number, __renderTarget?: true }, width: number, height: number ): { ok: boolean, reasonCode: string, handle?: number, width?: number, height?: number, resized?: boolean }
aura.draw2d.rotate(angle: number): void
aura.draw2d.runCompositorGraph( graphName: string, stages: Array<{ id: string, target: number | { handle: number, __renderTarget?: true }, draw: () => void }> ): { ok: boolean, reasonCode: string, graphName?: string, stageCount?: number, commandCount?: number, stages?: Array<{ type: "compositorStage", __compositorStage?: true, graph: string, graphName: string, stage: string, id: string, handle: number }> }
aura.draw2d.scale(sx: number, sy: number): void
aura.draw2d.sprite(image: Asset, x: number, y: number, options?: SpriteOptions): void
aura.draw2d.spriteFx( image: | Asset | { handle: number, __renderTarget?: true } | { type: "compositorStage", graph: string, stage: string }, x: number, y: number, options: { width?: number, height?: number, alpha?: number, shadow?: { offsetX?: number, offsetY?: number, blur?: number, color?: Color, alpha?: number }, outline?: { thickness?: number, color?: Color, alpha?: number } } ): { ok: boolean, reasonCode: string, submittedFxDrawCount?: number }
aura.draw2d.text(str: string, x: number, y: number, options?: TextOptions): void
aura.draw2d.tileSprite( image: Asset, x: number, y: number, width: number, height: number, options?: { tileScaleX?: number, tileScaleY?: number, tileOffsetX?: number, tileOffsetY?: number, tint?: Color, alpha?: number } ): void
aura.draw2d.translate(x: number, y: number): void
aura.draw2d.withMask( source: | Asset | { handle: number, __renderTarget?: true } | { type: "analytic" | "shape", shape: "circle", feather?: number }, x: number, y: number, width: number, height: number, callback: () => void, options?: { invert?: boolean } ): { ok: boolean, reasonCode: string, commandCount?: number, maskKind?: "source" | "analytic", maskShape?: "texture" | "circle", maskFeather?: number }
aura.draw2d.withRenderTarget( target: number | { handle: number, __renderTarget?: true }, callback: () => void ): { ok: boolean, reasonCode: string, handle?: number, commandCount?: number }
aura.draw2d.withRenderTargets( stages: Array<{ target: number | { handle: number, __renderTarget?: true }, draw: () => void }> ): { ok: boolean, reasonCode: string, stageCount?: number, commandCount?: number, handles?: number[] }

Additional Known Method Names

aura.draw2d.arc(...)
aura.draw2d.arcFill(...)
aura.draw2d.bezier(...)
aura.draw2d.clearFill(...)
aura.draw2d.polygon(...)
aura.draw2d.polygonFill(...)
aura.draw2d.polyline(...)
aura.draw2d.quadratic(...)
aura.draw2d.setBlendMode(...)
aura.draw2d.setFill(...)
aura.draw2d.styledText(...)

Exact signature extraction is still incomplete for the methods above. Use the canonical contract source if argument or return-value detail matters.

`aura.assets`

Load and query bundled assets (images, audio, fonts, JSON, text).

  • Native support: supported
  • Web support: supported
  • Exact signatures in generated schema: 8
  • Additional known method names: 7
  • Contract source: api-contract.md

Exact Signatures

aura.assets.exists(path: string): boolean
aura.assets.getFormatSupport(path: string): AssetFormatSupport
aura.assets.load()
aura.assets.load(path: string): Asset
aura.assets.loadBitmapFont(options?: { cellWidth?: number, cellHeight?: number }): FontLoadResult
aura.assets.loadFont(path: string): FontLoadResult
aura.assets.loadJson(path: string): any
aura.assets.loadText(path: string): string

Additional Known Method Names

aura.assets.evict(...)
aura.assets.getCachePolicy(...)
aura.assets.getState(...)
aura.assets.getStateHistory(...)
aura.assets.preload2d(...)
aura.assets.preload3d(...)
aura.assets.setCachePolicy(...)

Exact signature extraction is still incomplete for the methods above. Use the canonical contract source if argument or return-value detail matters.

`aura.audio`

Play, pause, stop, and mix audio assets.

  • Native support: supported
  • Web support: unsupported
  • Exact signatures in generated schema: 26
  • Additional known method names: 8
  • Contract source: api-contract.md

Exact Signatures

aura.audio.assignBus(handle: number, bus: string): { ok: boolean, reasonCode: string | null, handle?: number, bus?: string, effectiveVolume?: number }
aura.audio.attachEmitter(handle: number, nodeId: number): { ok: boolean, reasonCode: string | null, handle?: number, spatial?: object }
aura.audio.attachListener(nodeId: number): { ok: boolean, reasonCode: string | null, listener?: object }
aura.audio.clearEnvelopes(): { ok: boolean, reasonCode: null, cleared: number }
aura.audio.crossfade(fromHandle: number, toHandle: number, options: { duration: number, fromVolume?: number, toStartVolume?: number, toVolume?: number, stopFrom?: boolean }): { ok: boolean, reasonCode: string | null, fromEnvelopeId?: number, toEnvelopeId?: number }
aura.audio.detachEmitter(handle: number): { ok: boolean, reasonCode: string | null, handle?: number, detached?: boolean }
aura.audio.detachListener(): { ok: boolean, reasonCode: string | null, listener?: object }
aura.audio.fadeBus(bus: string, options: { to: number, duration: number }): { ok: boolean, reasonCode: string | null, envelopeId?: number }
aura.audio.fadeTrack(handle: number, options: { to: number, duration: number, stopOnComplete?: boolean }): { ok: boolean, reasonCode: string | null, envelopeId?: number }
aura.audio.getListenerState(): { ok: boolean, reasonCode: string | null, supported?: boolean, mode?: "manual" | "scene3d", attachedNodeId?: number | null, position?: object, forward?: object, up?: object, spatial?: object, hrtfEnabled?: boolean, reverbZone?: object | null }
aura.audio.getMixerState(): { buses: Array<{ bus: string, volume: number }>, tracks: Array<{ handle: number, bus: string, baseVolume: number, effectiveVolume: number, paused: boolean }>, envelopes: Array<{ id: number, kind: "track" | "bus", handle: number | null, bus: string | null, start: number, end: number, duration: number, elapsed: number, stopOnComplete: boolean }>, nextEnvelopeId: number }
aura.audio.getSpatialState(handle?: number): { ok: boolean, reasonCode: string | null, supported?: boolean, listener?: object, emitters?: object[], emitter?: object, lastReasonCode?: string, lastUpdate?: object }
aura.audio.pause(handle: number): void
aura.audio.play()
aura.audio.play(path: string, options?: AudioOptions): number
aura.audio.play3d(path: string, options?: AudioOptions & { position?: { x: number, y: number, z: number }, nodeId?: number, minDistance?: number, // default: 1 maxDistance?: number, // default: 32, must be > minDistance rolloff?: number, // default: 1, must be > 0 panStrength?: number // default: 1, clamped to [0,1] }): { ok: boolean, reasonCode: string | null, handle?: number, fallbackMode?: "stereo_2d", spatial?: object }
aura.audio.resume(handle: number): void
aura.audio.setBusVolume(bus: string, volume: number): { ok: boolean, reasonCode: string | null, bus?: string, volume?: number }
aura.audio.setEmitterTransform( handle: number, transform: { x: number, y: number, z: number } ): { ok: boolean, reasonCode: string | null, handle?: number, spatial?: object }
aura.audio.setListenerTransform(transform: { position?: { x: number, y: number, z: number }, rotation?: { x: number, y: number, z: number } }): { ok: boolean, reasonCode: string | null, listener?: object }
aura.audio.setMasterVolume(volume: number): void
aura.audio.setVolume(handle: number, volume: number): void
aura.audio.stop(handle: number): void
aura.audio.stopAll(): void
aura.audio.update(dt: number): { ok: boolean, reasonCode: string | null, advanced?: number, completed?: number, activeEnvelopes?: number }
aura.audio.updateSpatial(): { ok: boolean, reasonCode: string | null, updated?: number, fallbackCount?: number, missingTrackCount?: number, listenerMode?: "manual" | "scene3d", fallbackReasonCode?: "spatialization_unavailable_backend" | null }

Additional Known Method Names

aura.audio.addReverbZone(...)
aura.audio.clearReverbZones(...)
aura.audio.playSpatial(...)
aura.audio.removeReverbZone(...)
aura.audio.setEmitterPosition(...)
aura.audio.setHRTF(...)
aura.audio.setListener(...)
aura.audio.setOcclusion(...)

Exact signature extraction is still incomplete for the methods above. Use the canonical contract source if argument or return-value detail matters.

`aura.storage`

Persist and retrieve JSON-serializable data to local storage.

  • Native support: supported
  • Web support: supported
  • Exact signatures in generated schema: 4
  • Additional known method names: 0
  • Contract source: api-contract.md

Exact Signatures

aura.storage.delete(key: string): void
aura.storage.keys(): string[]
aura.storage.load(key: string): any | null
aura.storage.save(key: string, value: any): void

`aura.math`

Common math utilities (lerp, clamp, random, distance, angle, constants).

  • Native support: supported
  • Web support: supported
  • Exact signatures in generated schema: 5
  • Additional known method names: 1
  • Contract source: api-contract.md

Exact Signatures

aura.math.angle(x1: number, y1: number, x2: number, y2: number): number
aura.math.clamp(value: number, min: number, max: number): number
aura.math.distance(x1: number, y1: number, x2: number, y2: number): number
aura.math.lerp(a: number, b: number, t: number): number
aura.math.random(): number aura.math.random(max: number): number aura.math.random(min: number, max: number): number

Additional Known Method Names

aura.math.setSeed(...)

Exact signature extraction is still incomplete for the methods above. Use the canonical contract source if argument or return-value detail matters.

`Top-Level Utilities`

Top-level color and vector construction helpers.

  • Native support: supported
  • Web support: see_web_build_contract_v1
  • Exact signatures in generated schema: 30
  • Additional known method names: 0
  • Contract source: api-contract.md

Exact Signatures

aura.Color.BLACK // { r: 0.0, g: 0.0, b: 0.0, a: 1.0 }
aura.Color.BLUE // { r: 0.0, g: 0.0, b: 1.0, a: 1.0 }
aura.Color.CYAN // { r: 0.0, g: 1.0, b: 1.0, a: 1.0 }
aura.Color.GREEN // { r: 0.0, g: 1.0, b: 0.0, a: 1.0 }
aura.Color.MAGENTA // { r: 1.0, g: 0.0, b: 1.0, a: 1.0 }
aura.Color.RED // { r: 1.0, g: 0.0, b: 0.0, a: 1.0 }
aura.Color.TRANSPARENT // { r: 0.0, g: 0.0, b: 0.0, a: 0.0 }
aura.Color.WHITE // { r: 1.0, g: 1.0, b: 1.0, a: 1.0 }
aura.Color.YELLOW // { r: 1.0, g: 1.0, b: 0.0, a: 1.0 }
aura.rgb(r: number, g: number, b: number): Color
aura.rgba(r: number, g: number, b: number, a: number): Color
aura.vec2.add(a: Vec2, b: Vec2): Vec2
aura.vec2.distance(a: Vec2, b: Vec2): number
aura.vec2.dot(a: Vec2, b: Vec2): number
aura.vec2.length(v: Vec2): number
aura.vec2.lerp(a: Vec2, b: Vec2, t: number): Vec2
aura.vec2.normalize(v: Vec2): Vec2
aura.vec2.scale(v: Vec2, s: number): Vec2
aura.vec2.sub(a: Vec2, b: Vec2): Vec2
aura.vec2(x: number, y: number): Vec2
aura.vec3.add(a: Vec3, b: Vec3): Vec3
aura.vec3.cross(a: Vec3, b: Vec3): Vec3
aura.vec3.distance(a: Vec3, b: Vec3): number
aura.vec3.dot(a: Vec3, b: Vec3): number
aura.vec3.length(v: Vec3): number
aura.vec3.lerp(a: Vec3, b: Vec3, t: number): Vec3
aura.vec3.normalize(v: Vec3): Vec3
aura.vec3.scale(v: Vec3, s: number): Vec3
aura.vec3.sub(a: Vec3, b: Vec3): Vec3
aura.vec3(x: number, y: number, z: number): Vec3
DOCUMENT REFERENCE
docs/reference/draw2d-assets-audio-storage-and-math-exact-reference.md
AURAJS
Cmd/Ctrl+K
aurajsgg