Skip to content

Features of Siv3D

Here is a list of the main features provided by Siv3D.

Graphics

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

Audio

  • Audio formats (WAVE, MP3, AAC, OggVorbis, Opus, MIDI, WMA, FLAC, AIFF)
  • Volume, pan, speed, and pitch adjustments
  • Streaming playback (WAVE, MP3, OggVorbis)
  • Writing waveforms to the buffer during playback
  • Fade-in, fade-out
  • Looping
  • Mixing bus
  • Filter processing (Low-pass filter, High-pass filter, Echo, Reverb)
  • FFT
  • SoundFont rendering
  • Text-to-speech

Input Devices

  • Mouse
  • Keyboard
  • Gamepad
  • Webcam
  • Microphone
  • Joy-Con / Pro Controller
  • XInput Gamepad
  • Pen Tablet
  • Leap Motion

Window

  • Full-screen mode
  • High DPI support
  • Window styles (resizeable, frameless)
  • File dialog
  • Drag & drop
  • Message box
  • Toast notifications

Network and Communication

  • HTTP client
  • Multiplayer (Photon SDK)
  • TCP communication
  • Serial communication
  • Inter-process communication (pipe)
  • OSC (Open Sound Control) communication

Mathematics

  • 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)
  • Curvilinear coordinate classes
  • 2D / 3D intersection determination and intersection calculations
  • 2D / 3D geometric calculations
  • Rectangle packing
  • Planar subdivision
  • Linear color space and gamma color space
  • Pseudo random number generator
  • Interpolation, easing, smoothing
  • Perlin noise
  • Formula parser
  • NavMesh
  • Extended number types (HalfFloat, int128, uint128, BigInt, BigFloat)

String Processing

  • String classes (String, StringView)
  • Unicode conversion (UTF-8 / UTF-16 / UTF-32)
  • Regular expressions
  • {fmt} style string formatting
  • Reading and writing text files
  • CSV / INI / JSON / XML / TOML parsers
  • CSV / INI / JSON output
  • JSON validation

Other

  • Basic GUI (buttons, sliders, radio buttons, checkboxes, text boxes, text areas, list boxes, color pickers, menu bars, tables)
  • Integration of 2D physics engine (Box2D)
  • Array classes (Array, Grid)
  • Kd-tree
  • Disjoint Set Union
  • Asynchronous file loading
  • Data compression (zlib, Zstandard)
  • Scene transition
  • File system
  • Directory monitoring
  • QR code
  • GeoJSON
  • Date and time
  • Time measurement
  • Logging
  • Serialization
  • UUID
  • Child process management
  • Clipboard
  • Power management
  • Scripting (AngelScript)
  • OpenAI API (Chat, Image, Embedding)

(*Some features are supported only on specific platforms)