Software Development
C-Sharp Libraries
NameDescriptionAction
Audio2dThe idea behind this project is to provide simple, platform-neutral way to handle an audio playback. The audio component implements playing sounds for up to 8 channels, with pre-built fade and pan special effects. The volume and pan values could be controlled for a particular sound, as well for all the active sounds. Optionally, a client could listen to a sound's state change.

Internally, the sounds are normalized for PCM audio format and 44100 sample rate, defaulting to 2 channels (stereo). By default, the component uses System.Media.SoundPlayer instance to play pre-mixed audio buffer. A client may override the default behaviour by implementing the IWaveFormat interface externally (the AppTest application uses winmm.dll services for double-buffered audio output).

Currenly, only the WAVE files could be loaded and saved.

References:
Audio Channel Manipulation
Audio File Format Specifications
Waveform Functions
Using G711 Standard

Project is built with VS 2017, .NET Framework 4.7.1
Project references:
  • Framework
  • Logger
CalculusCalculus Library solves trigonometry problems - matrix / coordinate system calculations, findng intercepts, segmentation, calculations involving points, lines, and planes.

Project is built with VS 2017, .NET Framework 4.7.1
FrameworkFramework Library implements basic services for audio/video components, such as the asset management, input handling, etc.
  • Assets
    An asset is loaded by its name and type, if the corresponding ISerializer is implemented. The implementation associates the asset's type with the loader and file extensions.
  • Clip management
    This namespace is dedicated to a clip management. The clip manager takes care of the clip reference counting, clip loading, and releasing unused clips.
  • Command management
    The command manager takes care of loading/removing commands, the command execution, and triggering the commands by the client.
  • Handling user interface
    The input namespace is an abstraction layer for handling keyboard, joystick, and mouse events.
  • Localization
    The locale manager facilitates textual output for various cultures and languages.
  • Service management
    The service management provides a simple way to run the background services.
  • Tweening
    A tween is a timed update on a value, or entity (such as sound fading, linear displacement, etc.)
Project is built with VS 2017, .NET Framework 4.7.1
Project references:
  • Logger
GraphicsGrapnics Library is a layer of abstraction between a client and particular graphics platform, on which the library is implemented. This particular implementation is built on top of OpenTK, the C# library that wraps OpenGL. The intended clients are technical and engineering graphics applications that require three-dimensional visualization tool.

The implementation draws a scene on separate working thread, optionally, the thread-updater may be invoked. It features:
  • Loading image and pixmap assets.
  • Creation of raster and true-type fonts.
  • Supports lighting and fogging.
  • Creation of bitmaps, pixmaps, and textures.
  • Implements basic primitive shapes (cylinder, polygon, etc.)
  • Allows grouping of 3D objects into scenes and layers.
  • Supports tweening of coordinate system, shape, and graphics properties.
References:
OpenGL Site
OpenTK Site

Project is built with Visual Studio, using .NET Framework 4.7.1
Project references:
  • Calculus
  • Framework
  • Logger
  • OpenTK
LoggerLogger Class implements logging to the output console, or to a file. Each log entry is timestamped and associated with the level of reporting (warning, debug, etc.) The logging is configured per process.

Project is built with VS 2017, .NET Framework 4.7.1
Space3dThe Space3d Library uses Recursive Composition design pattern. The hierarchy by reference, built into the component, plays a dual role in modeling three-dimensional space: first, it provides a control over a lifetime of the object cluster; second, it mirrors a subordination of the object coordinate systems.

Project is built with Visual Studio, using .NET Framework 4.7.1
Project references:
  • Calculus
  • Framework
  • Graphics
  • Logger
Copyright 2026 Sergey Shustov, All rights reserved