Skip to content

Features

Overview of features provided by Siv3D:

Graphics

  • Advanced 2D graphics
  • Basic 3D graphics (Wavefront OBJ, primitive shapes)
  • Custom vertex / pixel shaders (HLSL, GLSL)
  • Text rendering (Bitmap, SDF, MSDF)
  • PNG, JPEG, BMP, SVG, GIF, Animated GIF, TGA, PPM, WebP, TIFF
  • Unicode 14.0 emojis and 7,000+ icons
  • Image processing
  • Video rendering

Audio

  • WAVE, MP3, AAC, OggVorbis, Opus, MIDI, WMA, FLAC, AIFF*
  • Adjustable volume, pan, play speed and pitch
  • File streaming (WAVE, MP3, OggVorbis)
  • Dynamic audio buffer
  • Fade in and fade out
  • Looping
  • Mixing busses
  • Filters (LPF, HPF, echo, reverb)
  • FFT
  • SoundFont rendering
  • Text to speech

Input

  • Mouse
  • Keyboard
  • Gamepad
  • Webcam
  • Microphone
  • Joy-Con / Pro Controller
  • XInput
  • Digital drawing tablet
  • Leap Motion

Window

  • Fullscreen mode
  • High DPI support
  • Window styles (sizable, borderless)
  • File dialog
  • Drag & drop
  • Message box
  • Toast notification

Networks and Communications

  • HTTP client
  • Multiplayer (Photon SDK)
  • TCP communication
  • Serial communication
  • Interprocess communication (pipe)

Math

  • Vector and matrix classes (Point, Float2, Vec2, Float3, Vec3, Float4, Vec4, Mat3x2, Mat3x3, Mat4x4, SIMD_Float4, Quaternion)
  • 2D shape classes (Line, Circle, Ellipse, Rect, RectF, Triangle, Quad, RoundRect, Polygon, MultiPolygon, LineString, Spline2D, Bezier2, Bezier3)
  • 3D shape classes (Plane, InfinitePlane, Sphere, Box, OrientedBox, Ray, Line3D, Triangle3D, ViewFrustum, Disc, Cylinder, Cone)
  • Color classes (Color, ColorF, HSV)
  • Polar / cylindrical / spherical coordinates system
  • 2D / 3D shape intersection
  • 2D / 3D geometry processing
  • Rectangle packing
  • Planar subdivisions
  • Linear and gamma color space
  • Pseudo random number generators
  • Interpolation, easing, and smoothing
  • Perlin noise
  • Math parser
  • Navigation mesh
  • Extended arithmetic types (HalfFloat, int128, uint128, BigInt, BigFloat)

String Processing

  • Advanced String class (String, StringView)
  • Unicode conversion
  • Regular expression
  • {fmt} style text formatting
  • Text reader / writer classes
  • CSV / INI / JSON / XML / TOML reader classes
  • CSV / INI / JSON writer classes

Misc

  • Basic GUI (button, slider, radio buttons, checkbox, text box, color picker, list box)
  • Integrated 2D physics engine (Box2D)
  • Advanced array / 2D array classes (Array, Grid)
  • Kd-tree
  • Disjoint Set Union
  • Asynchronous asset file streaming
  • Data compression (zlib, Zstandard)
  • Transitions between scenes
  • File system
  • Directory watcher
  • QR code reader / writer
  • GeoJSON
  • Date and time
  • Stopwatch and timer
  • Logging
  • Serialization
  • UUID
  • Child process
  • Clipboard
  • Power status
  • Scripting (AngelScript)

(*Some features are limited to specific platforms)